首页 > 解决方案 > 在 log4j 版本 1 中动态更改日志级别并桥接到版本 2

问题描述

我目前正在开发一个想要动态更改下一个 java 应用程序(在 localhost 上运行)的日志级别的应用程序。此外部应用程序使用 log4j 版本 1.2.16。我想使用 jmx,找到所有“LoggerConfigAdminMBean”并更改级别。

在规范(访问https://logging.apache.org/log4j/2.0/manual/jmx.html)中提到 log4j 2 是可能的。

因为不想对外部应用做太多改动,所以只用log4j1.2bridge.jar改了log4j1.2.16.jar(访问https://logging.apache.org/log4j/2.x/log4j-1.2 -api/index.html )。但是这种更改的结果是 LoggerConfigAdminMBean 的空列表。

使用 log4j 1.2 桥 jar 是否完全激活了 Jmx MBeans 功能,是否有某种方法可以获取完整的 LoggerConfigAdminMBean 列表,或者只能通过从 log4j1 迁移到 log4j2 版本?

非常感谢您的回答。

标签: log4jjmxmbeans

解决方案


您应该使用这两个依赖项:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.11.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.11.1</version>
</dependency>

并调整 log4j.properties,它必须放在项目的类路径中。请参阅:https ://logging.apache.org/log4j/2.x/manual/configuration.html#Properties


推荐阅读