2012-02-09 98 views
1

log4net.config如下所示。
我只想讓日誌文件每天滾動到一個新文件。但它在一天內轉了好多次,延長了.1,.2,.3 ...
我只記錄了一些活動,所以日誌文件應該是小的文件大小。通常我在一天內不會有超過100行的日誌。log4net給我很多.1 .2 .3文件

<appender name="DebugRollingFile" type="log4net.Appender.RollingFileAppender,log4net"> 
    <param name="File" value="D:\\log\\hdpca.bill.debug.log" /> 
    <param name="AppendToFile" value="false" /> 
    <param name="RollingStyle" value="Date" /> 
    <param name="StaticLogFileName" value="true" /> 
    <param name="MaxFileSize" value="10240" /> 
    <param name="MaxSizeRollBackups" value="100" /> 
    <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
    <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" /> 
    <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" /> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
    <param name="LevelMin" value="DEBUG" /> 
    <param name="LevelMax" value="DEBUG" /> 
    </filter> 
</appender> 
+0

你有什麼試圖解決它?您是否閱讀過滾動文件appender的文檔? – 2012-02-09 09:39:15

+0

如果您試圖按日期滾動此日誌,爲何要指定MaxFileSize? – gregwhitaker 2012-02-09 12:30:31

回答

2

您需要appendToFile設置爲;否則你將會覆蓋你的日誌文件。

您指定的其他屬性也存在一些問題。如果您希望按日期滾動日誌,則需要刪除MaxFileSize,並且在按日期滾動日誌時無法指定MaxSizeRollBackups。給配置下面一個鏡頭。它應該解決你的問題。

因此,簡而言之:

  1. appendToFile =真
  2. 刪除MAXFILESIZE
  3. 刪除MaxSizeRollBackups
  4. 刪除 「.LOG」 從文件屬性,離開DatePattern的一個(這將請確保您獲得{date} .log而不是.log {date} .log)

Sample Configu配給:

<appender name="DebugRollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file value="D:\\log\\hdpca.bill.debug"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Date"/> 
    <datePattern value="yyyyMMdd.lo\g" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
     <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" /> 
     <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" /> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <param name="LevelMin" value="DEBUG" /> 
     <param name="LevelMax" value="DEBUG" /> 
    </filter> 
</appender> 
+0

我正在嘗試這個。在'中爲什麼是\?我起初以爲你輸錯了,但事實證明你是對的。 – hbrls 2012-02-10 10:43:59

+0

\因爲g是datepattern中的特殊字符,所以\只是逃避了g。這和像yyyyMMdd'.log這樣引用.log相同。 – gregwhitaker 2012-02-10 13:21:41

-1

我建議使用'MaximumFileSize'而不是'MaxFileSize'財產,因爲它可以讓你使用suffixes:「KB」,「MB」或「GB」。

<maximumFileSize value="10MB" /> 

您的配置將文件大小設置爲10KB(並不是真的)。

UPDATE: 也許你datepattern是問題。我不確定在那裏是否有好轉序列。試試這個:

<datePattern value="yyyyMMdd'.log'" /> 

甚至

<datePattern value="yyyyMMdd" /> 
+0

我會試試。但是我的1.2文件從未達到10KB。 – hbrls 2012-02-09 10:44:50