log4net - 仅创建一个日志文件
我正在使用 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>
谢谢
I am using log4net and when I'm running my application, several logfiles are created.
It appears the log4net is creating a new logfile whenever the time-format changes, meaning I end up with a new logfile whenever a minute has passed.
I have probably missunderstod the xml syntax used, but I'm not sure where its wrong (maybe RollingFileAppender?).
Here's the xml file:
<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>
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您真的只想要一个文件,那么您应该使用普通的文件附加器:
http://logging.apache.org/log4net/release/config-examples.html#FileAppender
根据您的评论,我假设您的应用程序运行“短”时间,因此您想要在日志中包含一些日期/时间信息 文件名。您可以这样做:
更新:
配置示例(对我有用):
If you really want just one file then you should use the normal file appender:
http://logging.apache.org/log4net/release/config-examples.html#FileAppender
Based on your comments I assume your application runs for a "short" time and therefore you want to have some date / time information in your log file name. This you can do like this:
Update:
Configuration Sample (that works for me):
您需要将日期模式更改为类似的内容,
这将每天滚动一次日志文件。
示例:
通过此配置,
您可以告诉文件附加程序每分钟创建一个新的日志文件(如果您每分钟至少向日志写入一次内容)。
假设您于 2011 年 9 月 21 日
17:00:00
开始申请。您每秒输出日志信息。这意味着前 60 秒(直到 17:00:59)所有输出都将保存到名为
Foo20110921_1700
的文件中。在
17:01:00
发生下一个输出,文件将“翻转”,这意味着创建了一个新文件Foo20110921_1701
。在接下来的 60 秒内,所有输出都将保存到这个新文件中。同样的情况还会在
17:02:00
、17:03:00
等时间再次发生。有关详细信息,请参阅 RollingFileAppender 文档
You need to change your date pattern to something like
This will roll your logfile once a day.
Example:
With this configuration
you are telling the file appender to create a new logfile every minute (if you are writing something to the logs at least once a minute).
Say you started your application at
17:00:00 on 09/21/2011
. You output logging information every second.This means that for the first 60 seconds (until 17:00:59) all output will be into a file named
Foo20110921_1700
.At
17:01:00
the next output occurs and the file will be 'rolled over', meaning a new fileFoo20110921_1701
is created.For the next 60 seconds all output will be into this new file. The same will happen again at
17:02:00
,17:03:00
and so forth.See RollingFileAppender documentation for more information
或者,如果您不想按日期滚动,请使用“大小”值,
这样您将每 10MB 滚动一次文件。
Alternatively, if you don't want to roll by date, use the Size value
So you will roll your files every 10MB.