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

news/2024/11/9 16:33:00/

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

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

<Console name="CONSOLE" target="SYSTEM_OUT"><PatternLayoutpattern="${APP_NAME} %-d{yyyy-MM-dd HH:mm:ss} [%-5p] [%X{TRACE_ID}] (%c{1}:%L) %m%n"/>
</Console>

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

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

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

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

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


http://www.ppmy.cn/news/1524615.html

相关文章

大腾智能出席龙华云创中心启动与鸿蒙园揭牌仪式

在数字化转型的浪潮中&#xff0c;深圳市龙华区再次引领行业创新&#xff0c;携手华为云成功举办“龙华工业软件云工程应用创新中心启动仪式暨鸿蒙产业园揭牌仪式”&#xff0c;本次盛会已于8月26日圆满落幕。活动现场&#xff0c;来自全国各地的行业精英、企业领袖及专家学者汇…

基于SpringBoot+Vue+MySQL的滑雪场管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在快速发展的冰雪运动热潮下&#xff0c;为了提升滑雪场的管理效率与顾客体验&#xff0c;我们设计并实现了一套基于SpringBoot后端框架、Vue前端框架以及MySQL数据库的滑雪场管理系统。该系统旨在通过数字化手段&#xff0c;优…

web框架

1. Web框架: 1.1Web框架定义&#xff1a; Web框架是一个用于构建Web应用程序的软件框架&#xff0c;它提供了一套完整的开发工具和库&#xff0c;以简化Web应用的开发过程。Web框架通常实现了HTTP协议、路由机制、模板渲染、数据验证、数据库操作等常用功能。 1.2Web框架与数…

苹果三款Mac新品十月登场:标配M4系列芯片

Mark Gurman爆料&#xff0c; 苹果将在10月推出14和16英寸MacBook Pro、Mac mini和iMac等设备&#xff0c;标配M4系列芯片。 据悉&#xff0c;苹果Mac新品搭载的M4芯片有两种版本&#xff0c;一种是10核CPU10核GPU&#xff0c;一种是8核CPU8核GPU。 值得注意的是&#xff0c;以…

如何将网络安全防范游戏化

组织对威胁的准备和恢复能力跟不上网络犯罪分子的进步。 一些首席执行官仍然认为网络安全需要偶尔干预&#xff0c;而不是持续关注。 但对于许多公司来说&#xff0c;情况并非如此&#xff1b;网络威胁准备需要协调一致的培训工作&#xff0c;因此网络安全团队在攻击发生时已…

Qt对话框布局调整

Qt 基础: 在"main.cpp" 文件的开始部分加入以下头文件&#xff1a; #include<Qsplitter> #include<QTextEdit> #include<QTextCodec> 停靠窗口QDockWidget 类: 停靠窗口QDockWidget 类也是在应用程序中经常用到的&#xff0c;设置停靠窗口的…

18 Python如何操作文件?

本篇是 Python 系列教程第 18 篇&#xff0c;更多内容敬请访问我的 Python 合集 1 打开文件 通常使用内置的 open(文件路径, 模式, encoding"utf-8")函数。 文件路径&#xff1a;可以是相对路径或绝对路径。模式&#xff1a;&#xff08;可选&#xff09;决定了文件…

【mysql】mysql修改sql_mode之后无法启动

现象&#xff1a;修改后mysql无法启动&#xff0c;不报错 原因&#xff1a;MySQL在8以后sql_mode已经取消了NO_AUTO_CREATE_USER这个关键字。去掉这个关键字后&#xff0c;启动就可以了 修改前&#xff1a; sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR…