0

目前我们有在 WebSphere 上运行的 J2EE 应用程序,log4j 1.x 是我们公司的 Java 日志记录标准。我们想研究在运行时更改 log4j 配置 xml 文件的能力,以便我们可以更改到 DEBUG 级别,例如,当发现问题时,一旦这些问题被清除并且 DEBUG 不存在,则返回到 ERROR 级别更需要。我们希望完成所有这些操作,而不必回收应用程序来重新读取配置文件。

我看到 DOMConfigurator.configureandWatch() 是一种可用的方法,它允许在运行时重新读取配置文件。然而,因为它产生了一个在应用程序关闭时不会关闭的单独线程,所以在 J2EE 环境中运行是不安全的。

http://logging.apache.org/log4j/1.2/faq.html#a3.6

有谁知道这是否已在 log4 2 中修复?我还没有从文档中找到任何确定的东西,并且很好奇在 J2EE 中运行时更改配置文件是否安全。

4

1 回答 1

1

重新读取配置文件不是您想要在生产中执行的操作。这意味着您正在更改许多应用服务器不希望更改的资源。开发环境可以摆脱它,理由是炸毁应用程序服务器并不是什么大不了的事。这也意味着如果必须重新启动您的应用程序,它的行为可能会有所不同。

您将希望以编程方式更改日志级别。您可以通过使用LogManager.getLogger()您关心的软件包来做到这一点。拥有记录器后,将级别更改为调试,并在完成后将其更改回来。

于 2013-08-07T22:36:38.087 回答