2009-11-16 105 views
0

我們使用log4net從Windows服務創建日誌文件,並且我們使用基於日期的RollingFileAppender滾動。我們使用的log4net版本是1.2.9。現在解決這個問題。我們基於日期進行滾動,在需要重新啓動服務的日子裏,當天的日誌文件不會滾動。當服務重新啓動時,log4net日誌文件消失

例如:今天說的是11月16日。我有logfile.txt包含今天的信息,並且我有logfile.txt.20091115,logfile.txt.20091112和logfile.txt.20091111。我錯過了11/13和11/14的文件,因爲這兩天都在重啓服務。

正如其他人經歷過這個或知道爲什麼會發生這種情況?

更新:

這裏是我的log4net.config附加器部分

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <param name="File" value="logfile.txt" /> 
    <param name="AppendToFile" value="true" /> 
    <param name="MaxSizeRollBackups" value="10" /> 
    <param name="MaximumFileSize" value="1000KB" /> 
    <param name="RollingStyle" value="Date" /> 
    <param name="DatePattern" value="yyyyMMdd" /> 
    <param name="StaticLogFileName" value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <param name="Header" value="[Service Started]&#13;&#10;" /> 
    <param name="Footer" value="[Service Stopped]&#13;&#10;" /> 
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 
    </layout> 
</appender> 

正如你可以看到AppendToFile參數是設置爲true。

我想澄清一些事情。該文件在重新啓動服務時不會被覆蓋。當文件假設根據日期滾動時,文件消失。

+1

請發佈您的log4net配置 – empi 2009-11-16 18:54:20

回答

2

正如empi所說,我們需要查看您的配置文件以確認。不過,我敢打賭你將Append屬性設置爲false。從log4net docs

如果該值設置爲false,那麼 文件將被覆蓋,如果它被設置 爲true,那麼該文件將被追加到 。

嘗試添加以下內容到RollingFileAppender進行配置:

<appendToFile value="true" /> 

編輯:看您發佈的配置文件,這行看起來很奇怪:

<param name="StaticLogFileName" value="true" /> 

...這是記錄as:

獲取或選擇ts是指示 是否始終登錄到相同的 文件的值。 如果始終應該記錄到 相同的文件,則爲true,否則爲false。

這聽起來像它符合你所看到的。嘗試刪除該行,或將其設置爲false。

相關問題