首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4net在进程中每次调用XmlConfigurator.Configure()时如何不清除日志

log4net在进程中每次调用XmlConfigurator.Configure()时如何不清除日志
EN

Stack Overflow用户
提问于 2013-06-21 06:44:29
回答 1查看 700关注 0票数 4

在我的应用程序中,我包括3个库:

代码语言:javascript
复制
Log4net
Common.Logging.log4net
Quartz (use Common.Logging.log4net to write logs)

这是我的log4net部分配置:

代码语言:javascript
复制
<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次:

  • 当init应用程序->调用时,我编写日志。
  • 在开始石英的时候打电话。(我验证了何时读取源代码Common.Logging.log4net) -> Quartz写入日志。

Quartz启动后,由于XmlConfigurator.Configure(),我的日志被清除了。这意味着当调用此命令时,日志将被清除。我不希望在进程命令中清除日志。

我可以让源dll Common.Logging.log4net更改代码以检查log4net是否已经真正配置,如果没有,则调用XmlConfigurator.Configure()。但我不喜欢这个解决方案。

请帮助我在DLL库中找到另一个没有更改代码的解决方案。

更多信息:http://neilkilbride.blogspot.com/2008/04/configure-log4net-only-once.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-21 09:22:55

您已经配置了当重新配置log4net时,文件附录程序会创建一个新的日志文件:

代码语言:javascript
复制
 <appendToFile value="false" />

将此更改为:

代码语言:javascript
复制
 <appendToFile value="true" />

即使您多次调用XmlConfigurator.Configure(),日志消息也将在文件末尾追加。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17229166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档