在我的应用程序中,我包括3个库:
Log4net
Common.Logging.log4net
Quartz (use Common.Logging.log4net to write logs)这是我的log4net部分配置:
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
</root>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="quartz.log" />
<appendToFile value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>一切都很好,但是XmlConfigurator.Configure()有问题。此命令按顺序调用2次:
Quartz启动后,由于XmlConfigurator.Configure(),我的日志被清除了。这意味着当调用此命令时,日志将被清除。我不希望在进程命令中清除日志。
我可以让源dll Common.Logging.log4net更改代码以检查log4net是否已经真正配置,如果没有,则调用XmlConfigurator.Configure()。但我不喜欢这个解决方案。
请帮助我在DLL库中找到另一个没有更改代码的解决方案。
更多信息:http://neilkilbride.blogspot.com/2008/04/configure-log4net-only-once.html
发布于 2013-06-21 09:22:55
您已经配置了当重新配置log4net时,文件附录程序会创建一个新的日志文件:
<appendToFile value="false" />将此更改为:
<appendToFile value="true" />即使您多次调用XmlConfigurator.Configure(),日志消息也将在文件末尾追加。
https://stackoverflow.com/questions/17229166
复制相似问题