2010-09-06 51 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