Log4net -只创建一个日志文件
本文关键字:一个 日志 文件 -只 创建 Log4net | 更新日期: 2023-09-27 18:07:28
我使用log4net,当我运行我的应用程序时,创建了几个日志文件。似乎每当时间格式改变时,log4net就会创建一个新的日志文件,这意味着每过一分钟,我就会得到一个新的日志文件。
我可能误解了使用的xml语法,但我不确定它错在哪里(也许是RollingFileAppender?)。
下面是xml文件:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger:%line - %message%newline"/>
</layout>
</appender>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd_hhmm'.log'"/>
<file value="Boghe"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger:%line - %message%newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
谢谢
如果你真的只想要一个文件,那么你应该使用普通的文件追加器:
http://logging.apache.org/log4net/release/config-examples.html FileAppender
根据您的评论,我假设您的应用程序运行"短"时间,因此您希望在日志文件名中包含一些日期/时间信息。你可以这样做:
<file type="log4net.Util.PatternString" value="Boghe%date{yyyyMMdd_hhmm}.log" />
更新:
配置示例(对我有效):
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString"
value="c:'temp'Boghe%date{yyyyMMdd_hhmm}.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %message%newline" />
</layout>
</appender>
您需要将日期模式更改为
<datePattern value="yyyyMMdd" />
这将每天滚动一次日志文件。
例子:使用这个配置
<file value="Foo" />
<StaticLogFileName value="false">
<datePattern value="yyyyMMdd_hhmm"/>
你告诉文件追加程序每分钟创建一个新的日志文件(如果你每分钟至少写一次日志)。
假设您在17:00:00 on 09/21/2011
启动应用程序。每秒钟输出一次日志信息。
这意味着在前60秒(直到17:00:59),所有的输出都将保存到一个名为Foo20110921_1700
的文件中。
在17:01:00
出现下一个输出,文件将被"滚动",这意味着创建了一个新的文件Foo20110921_1701
。
在接下来的60秒内,所有输出都将保存到这个新文件中。同样的情况也会在17:02:00
、17:03:00
等处发生。
查看RollingFileAppender文档获取更多信息
或者,如果您不想按日期滚动,则使用Size值
<rollingStyle value="Size"/>
<maximumFileSize value="10MB"/>
你将每10MB滚动一次文件