Frage Ein Protokoll pro Tag haben


Momentan verwendet meine Anwendung log4net, um Fehler zu protokollieren, die web.config dafür ist wie folgt:

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

Das Problem dabei ist jedoch, dass die Logbücher jeden Tag immer zu gehen gateway.log

Kennt jemand eine Möglichkeit, mit log4net eine andere Protokolldatei pro Tag zu erstellen?

Idealerweise möchte ich das nicht manuell bearbeiten müssen web.config jede Nacht mit einer geplanten Aufgabe.


34
2018-04-27 11:09


Ursprung


Antworten:


Du solltest benutzen RollingFileAppender mit rollendem Stil Date und datePattern yyyyMMdd (Dies wird jeden Tag rollen).

Konfigurationsbeispiel:

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

UPDATE: Ich denke, ein besserer Weg ist, das Datum in den Dateinamen aufzunehmen. Und verwenden Sie den datePattern-Wert nur, um anzuzeigen, wann eine neue Protokolldatei erstellt werden soll.

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

In diesem Fall haben alle Ihre Dateien einen Namen wie gateway_20120427.log.


71
2018-04-27 11:15



Wie mit dem 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>

bearbeiten

Dies ist der gesamte log4net Konfigurationsbereich, der jeden Tag rotiert, genau wie @lazyberezovsky antwortete, indem er log4net und root zur Klärung hinzufügte

edit2 <file value="c:/paypal/logs/gateway_" /> Dadurch wird eine Datei namens "gateway_" erstellt und am Ende des Tages (2012-04-27) wird sie in gateway_20120427.log umbenannt und am nächsten Tag (2012-04-28) wird erneut die Datei gateway_ und erstellt Am Ende wird Gateway_20120428.log erstellt.

<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
2018-04-27 11:11



PreserveLogFileName

Diese Einstellung behält die Erweiterung der Datei gleich, nachdem Sie das Protokoll gerollt haben.

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

3
2018-04-22 17:43