是否可以在Tomcat中动态重新加载log4j.xml / log4j.properties文件?
问题是,每当您更改log4j.properties/log4j.xml时,都需要重新启动tomcat [或说任何其他服务器]。是否有任何重新加载log4j配置的解决方法?
问题是,每当您更改log4j.properties/log4j.xml时,都需要重新启动tomcat [或说任何其他服务器]。是否有任何重新加载log4j配置的解决方法?
从 http://logging.apache.org/log4j/1.2/faq.html#3.6
有没有办法让log4j在配置文件更改时自动重新加载?
是的。DOMConfigurator 和 PropertyConfigurator 都支持通过 configureAndWatch 方法自动重新加载。有关更多详细信息,请参阅 API 文档。
因为 configureAndWatch 启动了一个单独的 wathdog 线程,并且因为在 log4j 1.2 中没有办法停止这个线程,所以 configureAndWatch 方法对于在回收应用程序的 J2EE 环境中使用是不安全的。
也就是说,我已经在Java EE环境(Sun One Web Server,而不是Tomcat)中成功地使用了PropertyConfigurator#configureAndWatch方法。
从log4j 2.x开始,您可以定期重新加载配置,在此示例中每30秒一次:
<configuration monitorInterval="30">
请在此处查看有关 log4j 2.x 配置的更多信息: