我当前正在开发一个应用程序,该应用程序希望动态更改下一个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的空列表。
通过使用log4j 1.2桥jar是否完全激活了Jmx MBeans功能,是否有某种方法可以获取完整的LoggerConfigAdminMBean列表,还是只能通过从log4j1迁移到log4j2版本来实现?
非常感谢您的回答。
答案 0 :(得分:0)
您应该使用以下2个依赖项:
<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