log4net un file per corsa

Ho bisogno della mia applicazione per creare un file di registro ogni volta che viene eseguito.

Il mio formato preferito sarebbe App.log.yyyy-MM-dd_HH-mm-ss . Se ciò non è ansible, accontentarsi di App.log.yyyy-MM-dd.counter

Questa è la mia attuale configurazione dell’appender:

       

Ma crea un numero casuale di file in base alla data e all’ora.

Presumo che l’applicazione crei un solo file di registro ogni volta che viene eseguito, quindi non è necessario un appender di file a rotazione (sebbene la mia soluzione si applichi anche agli appendici di file in rotazione):

        

(Ovviamente puoi usare il tuo layout e altre impostazioni per l’appender del file).

Si noti inoltre che è ansible impostare il proprio stile di rotazione come

rollingstyle="Once"

e creerà un nuovo file ogni volta che viene eseguito. Se staticLogFileName è impostato su true (ad es. logname.log ) i registri precedenti verranno impostati su logname.log.1 , logname.log.2 , ecc.

Il numero di file conservati prima di sovrascrivere il più vecchio (ad esempio 10) può essere controllato impostando

maxSizeRollBackups="10"

Modifica: La mia configurazione, che crea un registro datastampato per esecuzione (a meno che non esista, nel qual caso segue la regola .1 , ha il seguente aspetto:

            

Non sicuro al 100% se ho bisogno di appendToFile="false" come dicono i documenti che viene eseguito automaticamente quando si usa rollingStyle="Once" , ma in ogni caso ciò lo rende più chiaro.

È documentato da apache nei documenti log4net in:

https://logging.apache.org/log4net/release/config-examples.html

ctrl + f per “esecuzione per programma”