对于未注册的记录器,通过JMX在log4j2中指定记录器级别

时间:2015-01-23 19:18:46

标签: java log4j jmx log4j2 mbeans

我使用JMX客户端以编程方式更改log4j中的记录器级别。它工作正常,但如何为未注册(在log4j2.xml中未指定)记录器指定记录器级别?

例如,我有以下记录器块:

<Loggers>
        <Root level="WARN">
            <AppenderRef ref="async"/>
        </Root>
        <Logger name="com.example" level="INFO" />
        <Logger name="com.example.java" level="INFO" />
</Loggers>

我有&#34; com.example&#34;和&#34; com.example.java&#34;记录器可通过JMX使用。但是如果我需要为&#34; com.example.java.Runner&#34;指定记录器级别呢?或者&#34; com.example.groovy&#34;?

2 个答案:

答案 0 :(得分:0)

目前(版本2.1)这是不可能的。 JMX仅用于配置配置中的记录器。

如果没有JMX,您可以执行以下提到的操作: Programmatically change log level in Log4j2

但这也适用于在配置中命名的记录器......

答案 1 :(得分:0)

您是否尝试过远程编辑Log4j配置,如客户端GUI部分here中所述?

  

单击“使用下面的XML重新配置”按钮将配置文本发送到远程应用程序,用于动态重新配置Log4j。这不会覆盖任何配置文件。使用编辑器中的文本重新配置仅在内存中进行,并且文本不会永久存储在任何位置。