java - 以编程方式使用以下 java 代码创建附加程序,我需要使用我的 partternLayout 添加 MDC
问题描述
使用 log4j2.xml 在 java 中以编程方式创建附加程序需要使用 Log4j2 的 PatternLayout 添加 MDC 键变量,任何人都可以查看下面的代码并告诉如何添加 mdc 变量,其值将在 looger.info 调用之前被替换
PatternLayout layout = PatternLayout.newBuilder().withConfiguration(config)
.withPattern("%d{HH:mm:ss.SSS} %level %msg%n").build();
final Appender appender = FileAppender.createAppender("target/test.log", "false", "false", "File", "true",
"false", "false", "4000", layout, null, "false", null, config);
appender.start();
addAppender(appender);
LoggerConfig loggerConfig = LoggerConfig.createLogger("false", "info", "org.apache.logging.log4j",
"true", refs, null, config, null );
loggerConfig.addAppender(appender, null, null);
addLogger("com", loggerConfig);
现在我需要每当我的日志语句被打印时,它们也会打印一些值来告诉他们的状态。
如何在创建上述模式布局时添加 MDC 键?
==> logger.info(" Here we are "); 的当前行为 正在打印“我们来了”
我的期望是 => 语句应该带有 MDC key 。
解决方案
您的模式应该包含类似%X{someKey}
.
然后在您的代码中,您将设置该值,例如:
MDC.put("someKey", someValue);
推荐阅读
- javascript - 我应该转换我的内联脚本,以便将其放入外部 .js 文件中吗?
- python - 如何获取操作员模块的排序功能来存储数据,以便我可以附加文件?
- scala - 指定工具箱解析的 AST 的来源
- networking - 我正在运行 WAMP 服务器。但是不能通过路由器转发ip
- ms-access - 在 VB6 中通过 DAO 优化通过高延迟网络打开 Access 数据库
- git - 从特定提交中检出特定文件会给出“错误:pathspec 文件名不匹配”
- excel - 如何遍历具有默认列标题“Column1”、“Column2”等的 Excel 表格行并提取其中的数据?
- php - 将文本字符串附加到 WooCommerce 产品标题
- python - 在python中创建具有一定宽度边框的图像
- jquery - 在浏览器返回事件上调用更改事件