什么是日志MDC?一句话简单解释MDC

news/2024/12/12 14:44:44/文章来源:https://www.cnblogs.com/milkbox/p/18599333

官方文档:Chapter 8: Mapped Diagnostic Context
为什么要写这篇文章呢?因为目前互联网上全是从官方文档里机器翻译然后转载的。但实际上我只是想知道什么是MDC,一句话解释一下MDC就可以了。
以下内容是我本人对MDC的简单总结

MDC的字面意思:Mapped Diagnostic Context 映射诊断上下文

通俗的说就是在打印日志的时候定义一个占位符%X{MDC键名称},然后在你自己写的代码中使用MDC.put("MDC键名称", "内容")方法给占位符赋值,在最终打印的时候,日志框架就会自动带上你指定的内容。(有点像字符串拼接)

MDC可以理解为一个map,只不过这个map的作用域是单个线程,且线程安全。

以下为一个最简单的例子:

java代码:

package top.milkbox.modular.customTest;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import top.milkbox.modular.controller.TestController;/*** 创建时间: 2024-12-11 上午 11:38** @author milkbox*/
public class CustomTest {private static final Logger log = LoggerFactory.getLogger(TestController.class);public static void main(String[] args) {// 定义一个键值对,键名为custom.info,键值为王多鱼MDC.put("custom.info", "王多鱼");// 正常打印日志log.info("购买脂肪险,让王多鱼倾家荡产");// 设置打印格式为:%X{custom.info} - %m%n// 最终打印:王多鱼 - 购买脂肪险,让王多鱼倾家荡产}
}

日志配置文件logback.xml(对于如何使用日志的配置文件,我这里就不解释了)。这里重点注意:<pattern>%X{custom.info} - %m%n</pattern>。我们使用%X{MDC键名称}这个占位符来定义内容显示的位置

<?xml version="1.0" encoding="UTF-8"?>
<configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- <pattern>${CONSOLE_LOG_PATTERN}</pattern> --><!-- 使用:%X{MDC键名称}来显示内容 --><pattern>%X{custom.info} - %m%n</pattern><charset>utf-8</charset></encoder></appender><root level="info"><appender-ref ref="STDOUT"/></root><logger name="top.milkbox" level="info" additivity="false"><appender-ref ref="STDOUT"/></logger></configuration>

运行main函数,结果如下:

这是MDC最简单的用法,如果想看更详细的可以去官方文档学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/850844.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5分钟搞定:借助AI Agent完成一个AI客服答疑机器人

AI Agent这个新东西是一种基于大模型开发的应用,它通过结合语言理解和生成能力与特定外部能力来扩展功能。利用AI Agent,你能做很多事情,比如处理私密数据、提供最新资讯或执行专业任务等。在私有领域知识问答方面,AI Agent可以创建于公司内部查询应用;作为个性化聊天机器…

如何优雅的用obs推流腾讯云

如何优雅的用obs推流腾讯云 源码地址:https://gitee.com/godsdodo/tencent-live.git 简介: #腾讯云直播 #腾讯云im #腾讯云白板 # 私域直播 #高并发直播分发; 基于腾讯云K8S搭建的私域直播培训平台,直播功能: 主播推流,智能直播,OBS推流 ## 助理平台: 场控控制,直播间管理,直播…

20222412 2021-2022-2 《网络与系统攻防技术》实验八实验报告

20222412 2021-2022-2 《网络与系统攻防技术》实验八实验报告 1.实验内容 (1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt 理解JavaScript的基本功能,理解DOM。 在(1)的基础上,编写JavaScr…

PS1045L-ASEMI小家电专用贴片二极管PS1045L

PS1045L-ASEMI小家电专用贴片二极管PS1045L编辑:ll PS1045L-ASEMI小家电专用贴片二极管PS1045L 型号:PS1045L 品牌:ASEMI 封装:TO-277 正向电流:10A 反向电压:45V 正向压降:0.44V~0.47V 引线数量:2 芯片个数:1 芯片尺寸:MIL 漏电流:10ua 恢复时间:35ns 浪涌电流:2…

【支付系统】资金视角看支付系统架构设计

#跨境业务 #资金平台 #账户 1 前言2 支付和资金的关系3 资金平台的职责4 跨境业务的复杂性5 支付和资金的关系6 资金平台做了哪些事7 总结在线支付是一个有近 20 年发展历程的行业,其背后系统的技术设计也随着时间、政策、技术的迭代,不断发生着变化。作为一个与钱直接打交道…

VSCode开发Go入门

一、Go环境搭建 安装Go 使用国内的Go语言中文网 https://studygolang.com/dl 进行下载找到合适的平台点击链接下载即可,这里以 Windows 为例 下载完成后点击安装保持默认即可 安装后 Go 将自动 设置环境变量,打开 终端 或 CMD 窗口验证 Go命令是否可用go version若安装成功,…

第五章 信息系统工程 (2024年详细解析版)

目录5.1 软件工程5.1.1 架构设计5.1.1.1 什么是架构设计5.1.1.2 软件架构研究的主要内容5.1.1.2.1 软件架构风格5.1.1.2.1.1 管道/过滤器5.1.1.2.1.2 面向对象模式5.1.1.2.1.3 层次结构5.1.1.2.1.4 事件驱动模式5.1.1.2.2 软件架构评估软件架构评估的方式5.1.2 …

在SAP Fiori界面上的ME53N事务

在SAP Fiori界面上的ME53N事务在SAP Fiori界面上的采购申请显示界面(事务代码ME53N),基本跟在SAP GUI上显示界面相同。Material Data选项卡,Quantities/Dates 选项卡,Valuation 选项卡,Source of Supply选项卡,Status 选项卡,注:本文基于SAP S/4HANA 1909系统。写于2024…

[Serverless] Azure Functions 使用介绍

关于产品 Azure Serverless (无服务器)https://azure.microsoft.com/zh-cn/solutions/serverless/ Azure Functions (函数应用)https://azure.microsoft.com/zh-cn/products/functions/ 操作步骤 1. 创建 New Function App 项目 关于 Azure Functions 托管选项https://learn.m…

基于Docker容器搭建maven私服 nexus

1、docker执行 将容器内部/var/nexus-data目录挂载到主机/data/nexus-data目录。docker run -d -p 8081:8081 --name nexus -v /data/nexus-data:/var/nexus-data --restart=always -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.u…

【每日一题】20241211

【每日一题】设 \(0<a<1\),随机变量 \(X\) 的分布列如下表所示,则当 \(a\) 在 \((0,1)\) 内增大时,A. \(D(X)\) 增大 B. \(D(X)\) 减小 C. \(D(X)\) 先增大后减小 D. \(D(X)\) 先减小后增大坡屋顶是我国传统建筑造型之一,其造型甚美,蕴含着丰富的数学元素.如图,某…

随记 - 2024 年 12 月 5 日

写在前面546 字 | 感触 | 孩子 | 天真 | 生活正文大轩轩是舞室里 Breaking 最厉害的小孩子。今晚,我和大轩轩顺道同一段路。他母亲接他。“你下周一还来吗?” 他问。“来啊,怎么不来,” 我顿了顿,继续说,“昨天没来是因为我被我们领导拉去应酬了。”“应酬是什么呀?” 他…