我们正在使用log4net从Windows服务创建我们的日志文件,我们正在使用基于日期的RollingFileAppender滚动。我们使用的log4net版本是1.2.9。现在为了这个问题。我们根据日期滚动,并且在我们需要重新启动服务的那些日子里,当天的日志文件没有滚动。
示例:今天是11月16日。我有包含今天信息的logfile.txt,我有logfile.txt.20091115,logfile.txt.20091112和logfile.txt.20091111。我错过了11/13和11/14的文件,因为这两天都重新启动了服务。
正如其他人经历过这种情况或者知道为什么会这样?
更新
这是我的log4net.config appender部分
<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] " />
<param name="Footer" value="[Service Stopped] " />
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
如您所见,AppendToFile参数设置为true。
我想澄清一些事情。重新启动服务时,文件不会被覆盖。当文件假定基于日期滚动时,是文件消失的时间。
答案 0 :(得分:2)
正如empi所说,我们需要查看您的配置文件以确定。但是,我敢打赌你将Append
属性设置为false。来自log4net docs:
如果该值设置为false则为 文件将被覆盖,如果已设置 如果为true,则将附加文件 到。
尝试将此添加到您的RollingFileAppender配置:
<appendToFile value="true" />
编辑:查看发布的配置文件,此行看起来很奇怪:
<param name="StaticLogFileName" value="true" />
...记录为:
获取或设置一个指示的值 是否始终记录相同 文件。 如果总是应该记录到,则为true 相同的文件,否则为假。
这听起来像是你所看到的。尝试删除该行,或将其设置为false。