Taille de fichier maximale de LogFileAppender dans Log4Net

J'utilise Log4net depuis un moment maintenant et c'est un cadre de journalisation incroyable, surtout lorsqu'il est accroché dans Castle.Windsor. Cependant...

J'utilise habituellement le rolling file appender, mais cela a entraîné trop de fichiers journaux que je ne le souhaite réellement, donc à la place, pour mon dernier projet, j'ai utilisé le logfileappender de base à la place, mais le problème est que le fichier journal continue de croître (apparemment pour toujours).

Comment puis-je dire à l'appender de ne pas dépasser une taille fixe (et commencer à supprimer l'ancien journaux et ajout des nouveaux au fichier?

MA configuration actuelle ressemble à:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  <file value="E:LogsiWaterSchedule-Dispatch-API.log"/>
  <param name="AppendToFile" value="true"/>
  <maximumFileSize value="2048KB"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/>
  </layout>
</appender>

Il semble que l'attribut maximumFileSize n'est pas respecté. Toutes les solutions?

Sinon, comment puis-je configurer l'addender de fichier roulant pour ne Créer que 1 Fichier (jamais)?

29
demandé sur Ash 2009-03-13 05:12:46

2 réponses

La classe FileAppender n'a pas les propriétés MaxFileSize/MaximumFileSize. Vous ne les obtenez que si vous utilisez un RollingFileAppender. Voici un exemple qui limitera votre fichier à une taille maximale fixe, Sans sauvegardes (définissez maxSizeRollBackups sur 0). Notez que lorsque le fichier atteint sa taille maximale, il tronque (supprime essentiellement toute journalisation existante et recommence):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="0" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
56
répondu Andy White 2009-03-13 02:40:55

Le LogFileAppender ne prend pas en charge la limitation de la taille du fichier de sortie (au moins dans les références que je peux trouver). Pour limiter la taille du fichier, utilisez un RollingFileAppender et rouler sur la Taille et la limite de taille de fichier.

Pour limiter le nombre de fichiers déroulants, utilisez l'attribut MaxSizeRollBackups

2
répondu Mitch Wheat 2009-03-13 02:18:26