在log4j版本1中动态更改日志级别并桥接到版本2

时间:2018-09-27 10:45:45

标签: log4j jmx mbeans

我当前正在开发一个应用程序,该应用程序希望动态更改下一个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版本来实现?

非常感谢您的回答。

1 个答案:

答案 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