【发布时间】:2015-03-09 15:56:51
【问题描述】:
使用下面的配置,大约有一半的时间,我得到一个两个日志,一个是空的。它们的文件名相差一秒(log.2015-03-09_11-50-25 vs log.2015-03-09_11-50-26)
我正在尝试每次运行控制台应用程序都有一个日志。
<log4net>
<appender name="Log" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="C:\env\QA\Logs\consoleapp\log.%date{yyyy-MM-dd_HH-mm-ss}.txt"/>
<appendToFile value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="Log"/>
</root>
</log4net>
后一个日志是唯一被填充/写入的日志。
为什么会这样?我该如何解决?
编辑:原来我在我的代码中实例化了第二个记录器。当实例化发生在另一秒时,会创建第二个日志。 appender 工作正常。
【问题讨论】:
-
删除文件名中的第二个说明符。
-
您的方法可能不是最理想的。尝试使用用户名/pid/其他在足够小的时间段内唯一的东西作为日志文件命名的“主键”
-
@swe 时间戳适用于日志文件名称 - 允许轻松读取文件名并将它们放在上下文中。
-
原来我在我的代码中实例化了第二个记录器。当实例化发生在另一秒时,会创建第二个日志。 appender 工作正常。
标签: c# log4net log4net-appender fileappender