我们正在用log4Net替换自定义构建的日志记录组件。目前,我们的日志文件基于大小滚动,但在创建新日志时在文件名中包含日期/时间戳。
例如; 应用2015-04-06-130733.log
当此日志文件达到可配置的大小时,假设为10MB,将创建一个带有新日期/时间戳的新文件。
我已经搜索过网络,论坛,log4net文档等,并且无法在log4net配置中找到实现此目的的方法。
这是我最新的log4net配置文件:
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" type="log4net.Util.PatternString" value="%property{ProgramDataLogDir}\Application-.log"/>
<param name="AppendToFile" value="false"/>
<param name="RollingStyle" value="Composite"/>
<param name="DatePattern" value="yyyy-MM-dd" />
<param name="MaxSizeRollBackups" value="-1"/>
<param name="MaximumFileSize" value="10MB"/>
<param name="StaticLogFileName" value="false"/>
<param name="preserveLogFileNameExtension" value="true" />
<threshold value="DEBUG"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%property{ThreadID} %d{MM/dd/yy HH:mm:ss.fff} %property{DebugLevel} %property{ComputerName} %property{ProcessName} [%t] %c %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
这会导致使用Application-2015-04-06.log创建日志文件,当达到10MB阈值时,会在日期之后使用.1,.2,.3等创建新文件。
应用程序2015-04-06.1.log
应用程序2015-04-06.2.log
应用程序2015-04-06.3.log
如果我可以将.1,.2,.3等更改为日期戳HHmmss,这将是完美的。
此外,每次启动应用程序时,我都需要启动一个全新的文件。如果我可以实现类似于Application-2015-04-06-130733.log的格式,它也应该处理这种情况。
总结:
1。)文件按大小滚动。
2.。)每次创建新文件时,无论是应用程序启动时还是按大小滚动,文件名都应包含新的日期/时间戳。
应用程序2015-04-06-130733.log
谢谢!