web-dev-qa-db-fra.com

Avoir un journal par jour

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.

38
swade1987

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.

79
Sergey Berezovskiy

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>
14
jjchiw

PreserveLogFileName

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>
8
Barry Colebank Jr