目前,我们拥有在WebSphere上运行的J2EE应用程序,而log4j 1.x是我们公司的Java日志标准。我们想研究在运行时更改log4j配置xml文件的能力,以便我们可以更改为DEBUG级别,例如,当发现问题时,一旦这些问题被清除并且DEBUG为no,则返回到ERROR级别需要更久。我们想要完成所有这些操作,而无需回收应用程序以重新读取配置文件。
我看到DOMConfigurator.configureandWatch()是一个可用的方法,它允许在运行时重新读取配置文件。但是,因为它会生成一个单独的线程,在关闭应用程序时不会关闭它,所以在J2EE环境中运行是不安全的。
http://logging.apache.org/log4j/1.2/faq.html#a3.6
有人知道这是否已在log4 2中修复?我还没有从文档中找到任何确定的内容,并且很遗憾在J2EE中运行时更改配置文件是否安全。
答案 0 :(得分:0)
重新阅读配置文件不是您想要在生产中执行的操作。这意味着您正在更改许多应用服务器不希望更改的资源。开发环境可以摆脱它,因为炸毁app服务器并不是什么大问题。这也意味着如果必须重新启动,您的应用可能会有不同的行为。
您将要以编程方式更改日志级别。您可以使用LogManager.getLogger()
来处理您关注的软件包。获得记录器后,将级别更改为debug,并在完成后将其更改回来。