我的应用程序由于某些原因以编程方式重新配置log4j(在某些情况下),即自定义appender已注册。但是,一旦有人手动编辑log4j配置文件,更改就会丢失。 如何确保我们对log4j配置的编程更改不会丢失?或者如何在log4j重新配置时收到通知?
该应用程序在JBoss上运行,并且在编辑$JBOSS/server/default/conf/jboss-log4j.xml
文件时会出现问题,但我认为该问题并非特定于JBoss AS。
答案 0 :(得分:0)
您可以,我想定期轮询Log4j API,询问您的自定义附加程序是否已附加(使用Category.isAttached(appender)
),并在必要时重新附加。它相当笨重,但我不知道有任何通知机制。
答案 1 :(得分:0)
是否通过在代码中明确调用configureAndWatch()
来配置log4j?
如果是这样,简单的解决方法是不调用“andWatch”方法,只需定期configure()
。
是否有理由不能在属性文件中配置这些自定义appender,而不是在代码中专门配置?