我正在使用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>
由于
答案 0 :(得分:2)
您需要将日期模式更改为
<datePattern value="yyyyMMdd" />
这将每天滚动一次日志文件。
示例:强> 使用此配置
<file value="Foo" />
<StaticLogFileName value="false">
<datePattern value="yyyyMMdd_hhmm"/>
你告诉文件appender每分钟创建一个新的日志文件(如果你每分钟至少写一次日志文件)。
假设您在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 documentation
答案 1 :(得分:2)
如果你真的只想要一个文件,那么你应该使用普通文件appender:
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>
答案 2 :(得分:0)
或者,如果您不想按日期滚动,请使用“大小”值
<rollingStyle value="Size"/>
<maximumFileSize value="10MB"/>
因此,您将每10MB滚动一次文件。