我使用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;?
答案 0 :(得分:0)
目前(版本2.1)这是不可能的。 JMX仅用于配置配置中的记录器。
如果没有JMX,您可以执行以下提到的操作: Programmatically change log level in Log4j2
但这也适用于在配置中命名的记录器......
答案 1 :(得分:0)
您是否尝试过远程编辑Log4j配置,如客户端GUI部分here中所述?
单击“使用下面的XML重新配置”按钮将配置文本发送到远程应用程序,用于动态重新配置Log4j。这不会覆盖任何配置文件。使用编辑器中的文本重新配置仅在内存中进行,并且文本不会永久存储在任何位置。