【问题标题】:log4j configuration change listenerlog4j 配置更改监听器
【发布时间】:2011-07-16 16:22:53
【问题描述】:

由于某些原因,我的应用程序以编程方式重新配置 log4j(在某些情况下),即注册了自定义附加程序。但是,一旦有人手动编辑 log4j 配置文件,更改就会丢失。 如何确保我们对 log4j 配置的编程更改不会丢失?或者当 log4j 重新配置发生时如何得到通知?

该应用程序在 JBoss 上运行,并且在编辑其 $JBOSS/server/default/conf/jboss-log4j.xml 文件时会出现问题,但我认为该问题根本不是 JBoss AS 所特有的。

【问题讨论】:

标签: java jboss log4j


【解决方案1】:

是否通过在您的代码中显式调用 configureAndWatch() 来配置 log4j?

如果是这样,简单的解决方法是不调用“andWatch”方法,只调用常规的configure()。

这些自定义附加程序无法在属性文件中配置,而不是专门在代码中配置,是否有原因?

【讨论】:

  • 不,不是。 Log4j 正在应用程序服务器中进行外部配置。该应用程序仅连接到现有的 log4j 生态系统。
【解决方案2】:

您可以,我想定期轮询 Log4j API,询问您的自定义附加程序是否已附加(使用 Category.isAttached(appender)),并在必要时重新附加。它相当笨重,但我不知道有任何通知机制。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多