log4net un fichier par exécution

J’ai besoin de mon application pour créer un fichier journal à chaque exécution.

Mon format préféré serait App.log.yyyy-MM-dd_HH-mm-ss . Si ce n’est pas possible, je me contenterai de App.log.yyyy-MM-dd.counter

Ceci est ma configuration actuelle d’appender:

       

Mais il crée un nombre aléatoire de fichiers en fonction de la date et de l’heure.

Je suppose que l’application ne doit créer qu’un seul fichier journal à chaque exécution. Vous n’avez donc pas besoin d’appanateur de fichiers continu (bien que ma solution puisse également s’appliquer aux développeurs de fichiers):

        

(Évidemment, vous pouvez utiliser votre propre mise en page et d’autres parameters pour le composant de fichier.)

Notez également que vous pouvez définir votre style de roulement comme

rollingstyle="Once"

et il va créer un nouveau fichier à chaque fois qu’il est exécuté. Si staticLogFileName est défini sur true (par exemple, logname.log ), les journaux précédents seront définis sur logname.log.1 , logname.log.2 , etc.

Le nombre de fichiers conservés avant de remplacer le plus ancien (par exemple 10) peut être contrôlé en définissant

maxSizeRollBackups="10"

Edit: Ma config, qui crée un journal horodaté par exécution (sauf s’il en existe un, auquel cas il suit la règle .1 , ressemble à ceci:

            

Pas sûr à 100% si j’ai besoin de appendToFile="false" comme le disent les documents qui se font automatiquement lorsque vous utilisez rollingStyle="Once" , mais cela le rend plus clair dans tous les cas.

Il est documenté par apache dans les documents log4net à l’adresse:

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

ctrl + f pour “exécution de programme”