Actuellement, mon application utilise log4net pour enregistrer les erreurs, le web.config pour cela est le suivant:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:/Paypal/logs/gateway.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Cependant, le problème est que tous les jours les journaux vont toujours à gateway.log
Quelqu'un connaît-il un moyen d'avoir un fichier journal différent par jour en utilisant log4net?
Idéalement, je ne veux pas avoir à modifier manuellement le web.config
tous les soirs à l'aide d'une tâche planifiée.
Vous devez utiliser RollingFileAppender avec rollingStyle Date
et datePattern yyyyMMdd
(cela roulera tous les jours).
Exemple de configuration:
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/Paypal/logs/gateway.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
MISE À JOUR: Je pense qu'une meilleure façon est d'inclure la date dans le nom du fichier. Et utilisez la valeur datePattern uniquement pour indiquer quand un nouveau fichier journal doit être créé.
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="c:/Paypal/logs/gateway_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
Dans ce cas, tous vos fichiers auront un nom comme gateway_20120427.log
.
Comme utiliser le RollingFileAppender
<appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="c:\my.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
modifier
C'est toute la section de configuration de log4net à rouler tous les jours, la même chose que @lazyberezovsky a répondu juste en ajoutant le log4net et la racine pour clarification
edit2 <file value="c:/Paypal/logs/gateway_" />
cela créera un fichier nommé 'gateway_' et à la fin de la journée (2012-04-27) il sera renommé gateway_20120427.log et le lendemain (2012-04-28) il créera à nouveau le fichier gateway_ et à la fin cela créera gateway_20120428.log.
<log4net>
<appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
<file value="c:/Paypal/logs/gateway_" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppenderOutput" />
</root>
</log4net>
Ce paramètre conserve l'extension du fichier identique après avoir roulé le journal.
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/Paypal/logs/gateway.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="_yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
<preserveLogFileNameExtension value="true" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>