每天创建新的日志文件并删除以前的日志文件

时间:2013-07-10 07:17:13

标签: c# visual-studio-2010 logging log4net

我有一个Windows服务。对于该服务中的日志记录,我使用的是Log4Net.dll。现在我的要求是我想每天创建一个新的日志文件,它应该只保留前7天的日志。意味着第8天,它应该删除第一天的文件并使用新文件。我正在使用appender:

 <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="D:\Log\%property{LogName}" />
     <AppendToFile value="true" />
     <rollingStyle value="Date" />      
     <maxSizeRollBackups value="100" />       
     <staticLogFileName value="false" />
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%newline %date %-5level %C.%M() - %message" />
     </layout>
 </appender>

在服务启动时,我将logger配置为:

log4net.GlobalContext.Properties["LogName"] = "App_" + DateTime.Now.ToString("MMddyyyy") + ".log";
log4net.Config.XmlConfigurator.Configure();   

那么Log4Net的任何功能是否会实现上述功能?或者还有其他方法吗?任何类型的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我担心你不能:RollingFileAppender Class

  

在日期/时间边界上滚动时的最大备份文件数   不支持

请查看此主题以获取其他建议:Log4Net: set Max backup files on RollingFileAppender with rolling Date

要每天实施日志文件,您可以使用:

<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />