我目前正在开发一个应用程序,它希望动态地更改下一个java应用程序的日志级别(正在本地主机上运行)。这个外部应用程序使用log4j版本1.2.16。我想使用jmx,查找所有"LoggerConfigAdminMBean“和更改级别。
在规范(请访问https://logging.apache.org/log4j/2.0/manual/jmx.html)中提到,使用log4j 2是可能的。
因为我不想在外部应用程序中做太多更改,所以我只通过log4j1.2bridge.jar (访问https://logging.apache.org/log4j/2.x/log4j-1.2-api/index.html)更改了log4j1.2.16.jar。但是,此更改的结果是LoggerConfigAdminMBean的空列表。
Jmx MBeans特性是通过使用log4j 1.2桥jar完全激活的,还是只有通过从log4j1迁移到log4j2版本才能获得LoggerConfigAdminMBean的完整列表?
非常感谢你的回答。
发布于 2018-10-02 04:52:14
您应该使用以下两个依赖项:
<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
https://stackoverflow.com/questions/52535212
复制