log4j2 - 是否可以以 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 模块之一的JMX客户端正是这样做的。
该功能由核心模块中的 JMX 包提供。
推荐阅读
- css - Angular 8:将 Mat-form-field 中的高度更改为特定像素数
- php - ACF 中继器字段 [短代码] - 如果子字段为空,则不显示任何内容
- node.js - 如何使用graphql将动态数量的变量保存到数据库中?
- php - Laravel 数据库通知 - 按帖子 ID 和类型分组
- amazon-web-services - AWS ec2 根驱动器的备份
- reactjs - 如何在 react-static 构建的应用程序中从 static.config.js 文件中定义的路由呈现菜单?
- django - 无法解析“函数”对象没有属性“_default_manager”
- java - 为什么这段代码不起作用?我需要1-9的随机数
- javascript - JavaScript中数字文字后面的字符'n'是什么意思?
- python - 将不等长的列表组合成字典