首页 > 解决方案 > 是否可以以 XML 格式显示当前的 Log4j2(运行时)配置

问题描述

我正在使用第三方开发的产品,他们在其中广泛使用了 log4j2。当我的应用程序在他们的框架上运行时,我不想覆盖他们现有的配置,只想在 log4j 上的现有运行时配置中写入一个附加程序。

有没有办法以 XML 格式查看 log4j2 实例的现有运行时配置?

我尝试了以下代码,但它给了我一个空白的 xml。

代码:

        ConfigurationBuilder<BuiltConfiguration> builder= ConfigurationBuilderFactory.newConfigurationBuilder();
        LoggerContext ctx=(LoggerContext) LogManager.getContext(false);
        builder.setLoggerContext(ctx);
        builder.writeXmlConfiguration(System.out);

输出:

<?xml version="1.0" ?>
<Configuration>
</Configuration>

标签: log4j2

解决方案


是的,这是可能的。作为log4j2 模块之一的JMX客户端正是这样做的。

该功能由核心模块中的 JMX 包提供。


推荐阅读