2009-12-14 29 views
1

我們從客戶那裏得到這個奇怪的錯誤報告:「日誌文件的最後修改日期早於日誌條目時間戳」。log4net日誌文件修改日期早於日誌輸入日期。時光機器?

區別在於天(〜2天)。這不是一個常數 - 迄今爲止只有一個已知的案例。

我不是log4net實現的專家 - 只能用它作爲第三方。鑑於記錄器配置是否提供了下面提供的任何可能性,這是由於log4net RollingFileAppender概念引起的一些錯誤配置或誤解導致的?

在log4net的是一個問題的可能來源只關心(即我明白,有外部的方式來實現這一目標?或許有些蹩腳的日誌文件管理工具,即修改錯誤的日期)

<appender name="CustomAppender" type="log4net.Appender.RollingFileAppender"> 
    <param name="File" value="log.txt" /> 
    <param name="AppendToFile" value="true" /> 
    <param name="MaxSizeRollBackups" value="2" /> 
    <param name="RollingStyle" value="Size" /> 
    <param name="StaticLogFileName" value="true" /> 
    <param name="MaximumFileSize" value="100MB" /> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <conversionPattern value="%date %-5level %message%newline" /> 
    </layout> 
</appender> 
<logger name="CustomLogger" additivity="false"> 
    <level value="ALL" /> 
    <appender-ref ref="CustomAppender" /> 
</logger> 

從代碼的使用是直接的(簡化的):

LogManager.GetLogger("CustomLogger").Info("Message"); 

log4net的版本:1.2.10.0 應用程序是一個窗口服務。語言 - C#3.0,但我想這不重要。

回答

0

我通過log4net不時看到這一點。報告的日期時間可能只是日誌文件最後打開時由log4net寫入的日期時間。

它可能不會更新文件日期時間,直到文件再次關閉。

[編輯:我剛剛抨擊了一個簡單的例子,我在本地機器上看到你所描述的行爲,但我以前看過它 - 可能在Windows 2003服務器上(如與我目前使用的XP相反)。看看你是否可以至少消除這種可能性]