前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查

日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查

原创
作者头像
拉丁解牛说技术
发布2024-08-15 10:43:40
2570
发布2024-08-15 10:43:40
举报
文章被收录于专栏:JAVA后端实用经验分享

一、异常堆栈无traceId 排查定位问题异常痛苦

在日常项目开发中,我们会自定义一个traceId方便,链路追踪。在log4j2.xml 我们可能是这样去配置日志打印格式。

代码语言:javascript
复制
<Console name="CONSOLE" target="SYSTEM_OUT">
    <PatternLayout
            pattern="${APP_NAME} %-d{yyyy-MM-dd HH:mm:ss} [%-5p] [%X{TRACE_ID}] (%c{1}:%L) %m%n"/>
</Console>

异常堆栈打印效果是这样的,报错输出的堆栈,没有携带trace_id信息,这样在做日志筛查时候,非常不方便。不能快速定位异常代码位置。

2、如何修改log4j.xml,让堆栈末尾添加traceId信息

可以通过%xthrowable 配合{suffix(pattern)}使用,在每个堆栈帧的末尾添加trace_id输出。

代码语言:txt
复制
${APP_NAME} %-d{yyyy-MM-dd HH:mm:ss} [%-5p] [%X{TRACE_ID}] %xThrowable{suffix(%X{TRACE_ID})} (%c{1}:%L) %m%n

添加后,验证效果,堆栈信息末尾都添加了traceId。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、异常堆栈无traceId 排查定位问题异常痛苦
  • 2、如何修改log4j.xml,让堆栈末尾添加traceId信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档