首页 文章

跨多个JVM动态设置Log4j级别

提问于
浏览
3

我在一个应用程序中工作,有许多普通的Java组件,每个组件都在一个单独的JVM中运行 . 所有这些组件都使用Log4j,没有选项可以更改为另一个日志库 .

正如 Headers 所暗示的那样,我正在寻找"easy"方式 dynamically apply a Log4j logging level across all components/JVMs . 通过"easy",我的意思是不重写源代码(否则,可以使用,例如,一个接口来获取/设置日志记录级别,并让所有类实现该接口) .

Web上有关于使用JMX的文章(例如,通过Log4j发行版的LoggerDynamicBean类(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/jmx/LoggerDynamicMBean.html) .

一篇有趣的文章描述了如何使用应用程序服务器(Tomcat)实现它:http://www.devx.com/Java/Article/32359/1954 . 应用程序服务器似乎是MBeanServer类的实现所必需的,Log4j将所有 Logger 都注册为MBean .

Is there any implementation that does this dynamic logging level setting, across multiple JVMs, either via JMX, or via any other means?

1 回答

  • 1

    把事情简单化 . 将所有JVM指向同一个log4j配置文件,使用它来偶尔重新加载它们 .

    PropertyConfigurator.configureAndWatch( yourConfigFile, yourReloadInterval);

相关问题