2012-08-23 52 views
4

我仍然沒有真正知道如何更改log4net如果我想每x小時都有一個日誌。我有這樣的:更改log4net配置創建每x小時新日誌

 <log4net> 
     <root> 
      <level value="DEBUG"/> 
      <appender-ref ref="LogFileAppender"/> 
     </root> 
     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
      <param name="File" value="C:\log.txt"/> 
      <param name="AppendToFile" value="true"/> 
      <rollingStyle value="Size"/> 
      <maxSizeRollBackups value="10"/> 
      <maximumFileSize value="100MB"/> 
      <staticLogFileName value="true"/> 
      <layout type="log4net.Layout.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/> 
      </layout> 
     </appender> 
    </log4net> 

我有一個日誌和Im在這其中的log.txt添加日誌總是 - 現在我想有讓說,每天,每一個新的日誌文件(24小時)或可能12小時一個新的日誌。我需要在我的配置中更改什麼?任何建議到我的配置?謝謝

+0

玩滾動式日期和日期參數。我懷疑你可能想寫你自己的appender,這很容易做到。 –

回答

7

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

這個例子顯示瞭如何將RollingFileAppender進行配置,以滾動的日期期間日誌文件。這個例子會每分鐘滾動一次日誌文件!要更改滾動週期,請調整DatePattern值。例如,「yyyyMMdd」的日期模式將每天滾動。有關可用模式的列表,請參閱System.Globalization.DateTimeFormatInfo

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
<file value="logfile" /> 
<appendToFile value="true" /> 
<rollingStyle value="Date" /> 
<datePattern value="yyyyMMdd-HHmm" /> 
<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
</layout> 

你的具體情況,與<datePattern value="yyyyMMdd-HH" />上面的例子將只允許您登錄每隔一小時。

但是,如果你想記錄每X小時,您可以創建自RollingFileAppender派生的自定義的appender並重寫AdjustFileBeforeAppend方法,將覈對你的下一個計劃日誌間隔日期當前時間。例如,請參閱Have a Log4Net RollingFileAppender set to roll weekly

1

替換您滾動風格如下:

<rollingStyle value="Date" /> 

你可能也想刪除的文件大小限制。