2010-09-06 52 views
3

我有一個滾動文件appender,每天晚上它滾動文件。但是,當它滾動時,新文件只有一個日誌條目。看來該文件不再附加日誌條目。如果我重新啓動服務,它會正確記錄。RollingFileAppender,它滾動後,它不會追加

這裏是我的設置:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Log.txt"/> 
    <appendToFile value="true" /> 
    <staticLogFileName value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value=" yyyy-MM-dd" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <threshold value="DEBUG" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 
    </layout> 
</appender> 

回答

1

套裝maxSizeRollBackups的值可能(maxSizeRollBackups設置爲負1,讓備份文件的無限數量)

這個例子說明如何配置 RollingFileAppender在每次程序執行時滾動日誌文件 一次。 appendToFile屬性設置爲假 以防止appender從 覆蓋現有文件。 maxSizeRollBackups設置爲負數 1以允許無限數量的 備份文件。文件大小確實有 被限制,但在這裏設置爲50 千兆字節,如果日誌文件超過 此大小限制在單次運行 然後它也將被滾動。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="logfile.txt" /> 
    <appendToFile value="false" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="-1" /> 
    <maximumFileSize value="50GB" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

Ref

+0

該答案無效。我啓用了log4net日誌記錄,並在滾動文件時看到此日誌:打開文件以寫入[C:\ GBI \ Trunk \ ExternalInterfaces \ GBI.ExternalInterface.BACMLFIXWindowsService \ bin \ Debug \ Log.txt] append [False]。所以,append屬性被設置爲false。這是爲什麼發生? – JoeRod 2010-09-07 13:45:15

3

我發現問題所在。我在配置中刪除了這一行,它在滾動文件後開始正確追加:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
+0

你從配置文件中刪除了哪行?它看起來不像它進入你的文章。 – wageoghe 2010-09-13 18:44:32