SLF4J进阶使用--MDC

写在前面

作为后端开发,相信大家每天都会时不时的和日志打交道,日志不仅是我们排查bug的重要手段,同时也可以作为监控、分析场景下的重要依据。SLF4J作为当下日志框架标准,相信大家都已经很熟悉了。如果大家搞不清楚slf4j、log4j2、logpack的关系,可以看我的这一篇文章:log4j2、logback、slf4j傻傻分不清楚

不知道大家在工作中有没有遇到下面的场景:多线程的任务调度中,我同时跑了多个任务让线程池去执行,但其中一个任务失败了,我想针对性的查看这个任务的日志来排查问题,也就是日志链路追踪问题。这里大家或许会想到分布式链路追踪,但是它的实现有些复杂,今天我们讨论的是一个非常简单的实现–SLF4J MDC。

一、简介

MDC全称Mapped Diagnostic Contexts,本质是一个map,目的是为了解决多线程下的日志链路追问题。SLF4J为我们封装了MDC,也就是只要使用SLF4J就可以无缝对接MDC。

二、使用

相信大家对logback、log4j2的日志配置格式已经很熟悉了,我们不再赘述。引入MDC大致分为以下三步:

  1. 配置properties或xml文件。
  2. 编写日志工具类。
  3. 在需要打印日志的地方,调用工具方法。

不管是使用logback还是log4j2,配置MDC的原理是一样的,我们以logback为例进行介绍。

场景:一个任务的执行包括任务的定义和任务实例的生成和执行,一个任务的执行链路追踪需要我们在日志中记录。操作如下:

1. 修改配置文件
<pattern>
  [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96} [%thread]:[%line] - TaskDefine-%X{taskDefineId:-0} - %msg%n
 </pattern>

添加 [TaskDefine-%X{taskDefineId:-0}] [TaskInstance-%X{taskInstanceId:-0}] 配置,%X可以理解为自定义的占位符,只为MDC提供服务。taskDefineId和taskInstanceId会被MDC的value值替换,如果值为空,默认值为0。

2. 编写日志工具类
public class LoggerUtils {
   
    
    public static final String TASK_DEFINE_ID_MDC_KEY = "taskDefineId";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好!您可以通过以下步骤下载slf4j-api-1.7.30.jar: 1. 打开https://www.slf4j.org/download.html网站。 2. 在“SLF4J 1.7.30”下面的“Download”栏中,单击“slf4j-api-1.7.30.zip”链接。 3. 下载完成后,解压缩zip文件。 4. 在解压缩的文件夹中,您可以找到“slf4j-api-1.7.30.jar”文件,将其复制到您的项目中即可。 希望这可以帮助您! ### 回答2: 要下载slf4j-api-1.7.30.jar,可以按照以下步骤进行: 1. 打开您常用的浏览器,如谷歌浏览器或火狐浏览器等。 2. 在搜索引擎中输入"slf4j-api-1.7.30.jar下载",然后按下Enter键进行搜索。 3. 浏览器会列出相关的搜索结果页面,您可以选择其中一个可靠的网站,如官方网站或Maven仓库等。 4. 进入您选择的网站后,在网站的搜索框中输入"slf4j-api-1.7.30.jar",然后点击搜索按钮或按下Enter键。 5. 网站会列出与您搜索关键词相关的文件。找到"slf4j-api-1.7.30.jar"文件并点击下载链接。 6. 系统会提示您选择文件的保存位置。您可以选择将其保存在您电脑中合适的文件夹中,以便于稍后安装或使用。 7. 等待文件下载完成。下载速度取决于您的网络连接速度。 8. 下载完成后,您可以在指定的文件夹中找到"slf4j-api-1.7.30.jar"文件。 请注意,确保下载文件的来源可靠和安全,并且与您的操作系统兼容。 ### 回答3: slf4j-api-1.7.30.jar 是一个用于Java应用程序的日志框架的jar文件。它是Simple Logging Facade for Java (SLF4J)的API模块,用于将不同的日志实现与应用程序代码分离。通过使用SLF4J,可以在应用程序中编写一致的日志记录代码,而不依赖于特定的日志实现。 下载 slf4j-api-1.7.30.jar 可以通过多种途径实现。其中一种方法是在SLF4J的官方网站上下载。访问官方网站后,找到下载页并选择相应的版本进行下载。另外,也可以通过Maven等构建工具进行下载。在项目的pom.xml文件中指定 slf4j-api 的依赖,构建工具会自动下载并管理相关的jar文件。 下载后,将 slf4j-api-1.7.30.jar 添加到项目的构建路径中。这样,在编写日志记录代码时,就可以使用SLF4J提供的API进行日志记录,而不需要关注具体的日志实现。SLF4J支持多种日志实现,如Logback、Log4j等,可以根据需要选择合适的实现,并将其相应的jar文件添加到项目中。 总结来说,下载 slf4j-api-1.7.30.jar 是为了在Java应用程序中使用SLF4J日志框架。下载后,将其添加到项目的构建路径中,然后可以使用SLF4J的API进行日志记录,而无需直接依赖于特定的日志实现。这样可以方便地对日志框架进行切换和管理,提高代码的可维护性和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值