【问题标题】:override log4j configuration with another log4j.xml file用另一个 log4j.xml 文件覆盖 log4j 配置
【发布时间】:2012-12-03 15:20:43
【问题描述】:

是否可以使用运行时加载的另一个 log4j.xml 文件添加或覆盖以前由 log4j.xml 文件加载的 log4j 配置?

我的 Glassfish 服务器在启动时加载 log4j.xml 文件,我想用 EAR 文件中的另一个 log4j.xml 文件更改此配置。

我尝试使用DOMConfigurator.configure("log4j.xml"),但似乎之前的配置没有被覆盖(但是这个方法找到log4j.xml文件,因为当我更改为不存在的文件时,我有异常)。

请问我该怎么做?

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    log4j Configurator 始终从“当前”设置开始应用其配置。如果您希望新设置替换旧设置,只需先调用LogManager.resetConfiguration(),然后再调用DOMConfigurator。

    【讨论】:

    • 我之前测试过,但对于我的情况,它不起作用。上下文是:在 Glassfish 启动时加载的 log4j.xml,我希望这个文件被 EAR 项目中的另一个 log4j.xml 文件覆盖。我在启动时加载的 servlet 内部对此进行了测试 ( 1 )
    • 好的,我找到了问题所在。 DOMConfigurator.configureAndWatch("log4j.xml");在 Glassfish 中加载 log4j.xml 文件(已经加载的...)而不是我 EAR 中的新文件,我不知道为什么
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2014-10-19
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多