You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j 1.x迁移至2.x:LoggingEvent相关方法替代方案咨询

Log4j 1.x 迁移到 2.x:LoggingEvent 方法替代方案

针对你提到的三个 Log4j 1.x LoggingEvent 方法,在 Log4j 2.x 的 org.apache.logging.log4j.core.LogEvent 里可以这样替换:

1. getMDC("xxx") 替代

直接通过 LogEvent 的 getContextData() 获取上下文数据,再调用 get() 方法指定键名:

Object obj = event.getContextData().get("xxx");

如果需要批量获取所有上下文数据,也可以用 getContextData().toMap() 转换成 Map 结构,和 1.x 的 getMDC() 返回的 Map 用法一致。

2. getRenderedMessage() 替代

调用 Message 对象的 getFormattedMessage() 方法,获取渲染后的消息内容:

String renderedMessage = event.getMessage().getFormattedMessage();

3. getThrowableInformation() 替代

  • 如果只需要获取异常对象,直接用 getThrown():
Throwable throwable = event.getThrown();
  • 如果需要类似 1.x ThrowableInformation 的封装信息(比如堆栈追踪、异常链等),用 getThrownProxy() 获取 ThrowableProxy 对象:
org.apache.logging.log4j.core.impl.ThrowableProxy throwableProxy = event.getThrownProxy();
// 示例:获取堆栈追踪元素
StackTraceElement[] stackTrace = throwableProxy.getStackTrace();

内容的提问来源于stack exchange,提问作者Aleksa Aleksic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:11:19