logback-MDC

相当于自定义日志格式输出

写在过滤器中

示例:

           try {
Context context = createContext(request, response);
processSysNo(request, response, context);
processSeqNo(request, response, context);
processTraceId(request, response, context);
MDC.put("systemName",context.getSysNo());
if (!StringUtils.isEmpty(context.getReqSeqNo())){
MDC.put("serialNum",context.getReqSeqNo());
}else {
MDC.put("serialNum",context.getSeqNo());
}
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
// 进程
MDC.put("process",runtimeMXBean.getName());
log.debug(context.toString());
chain.doFilter(request, response);
} finally {
removeContext(request, response);
// 避免线程泄漏
MDC.clear();
}

在logback.xml中配置引入

%X{process}
%X{systemName}
[时间戳] | 日志级别 | 所属系统或子系统 | traceId | spanId | 全局流水号 | 进程号 | 线程号 | 源码文件名:行号 | 日志内容
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] | %-5level | %X{systemName} | %X{X-B3-TraceId:-} | %X{X-B3-SpanId:-} | %X{serialNum} | %X{process} | %thread | %class:%line | %msg%n</pattern>

logback中使用MDC自定义日志输出格式的更多相关文章

  1. 【日志追踪】(微服务应用和单体应用)-logback中的MDC机制

    一.MDC介绍 MDC(Mapped Diagnostic Contexts)映射诊断上下文,该特征是logback提供的一种方便在多线程条件下的记录日志的功能, 某些应用程序采用多线程的方式来处理多 ...

  2. Logback中使用TurboFilter实现日志级别等内容的动态修改

    可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开发 ...

  3. LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例]

    1.首先实现一个interceptor,在请求开始的时候MDC put一个Session标志,interceptor结束的时候remove掉   import javax.servlet.http.H ...

  4. Windows server2012 IIs 8 自定义日志记录

    问题: 通过CDN加速的网站,记录日志时无法追踪源IP,日志的IP都为CDN节点ip. 分析: 1.在解析记录header时,CDN实际会把源IP以其它header的形式回传,如网宿为[Cdn-Src ...

  5. Asp.net Vnext 自定义日志

    概述 本文已经同步到<Asp.net Vnext 系列教程 >中] 可以通过自定义日志,把错误消息记录到数据库 实现 在启动文件Startup Configure方法中加入自定义的日志提供 ...

  6. 如何在golang中打印grpc详细日志

    最近捣鼓fabric,在一个tls证书问题上纠结挺久,连接orderer服务时候,grpc日志总是冷冰冰的显示这个信息 Orderer Client Status Code: (2) CONNECTI ...

  7. Logback中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现:ch.qos.logback.classic ...

  8. Logback自定义日志输出内容

    场景 一般情况下,日志打印的内容都是根据配置文件中配置的pattern格式指定好的.在我们调用logger.info(), logger.debug()等日志打印方法时,打印的内容格式与配置文件中的p ...

  9. idea中的Storm1.1.1工程自定义日志级别

    在idea中跑storm工程时,因为Storm中的日志级级别默认为INFO,控制台总是打印出很多没用的INFO级别的日志,导致我自己在代码中的sout内容看不清楚. 于是想着自定义日志的打印级别为WA ...

  10. logback的使用和logback.xml详解,在Spring项目中使用log打印日志

    logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分 ...

随机推荐

  1. [转帖]linux中top命令显示不全怎么解决

    https://www.yisu.com/zixun/697775.html 这篇"linux中top命令显示不全怎么解决"文章的知识点大部分人都不太理解,所以小编给大家总结了以下 ...

  2. Redis-dump Docker搭建的快速指南

    背景 最近学习redis想能够将dump文件进行导入处理. 看到比较好的办法都是使用ruby ,但是公司的网络太感人了. 想着比较简单的办法是通过docker方式来搭建. 这里简单记录一下搭建过程. ...

  3. js快速获取当前时间并且返回想要的格式

    function backCurrentTime (type) { let currentTime=new Date( new Date() + 8 * 3600 * 1000 ).toJSON(). ...

  4. 开源IM项目OpenIM发布消息推送api,支持应用与IM互通深度融合

    以办公场景为例,比如员工入职通知,放假通知等业务通知,由oa系统处理具体的业务逻辑,再调用消息推送api,触达到目标用户. 效果示例 以协同办公为例,员工收到系统推送的工作通知,有新任务需要处理. 员 ...

  5. java8新特性知识整理

    目录 前言 Lambda 表达式 方法引用 函数式接口 Stream 流 构造流的几种方式 常用 api Collectors.toMap (List 转 Map) peek 和 map 区别 gro ...

  6. Solon 框架启动为什么特别快?

    思来想去!可能与 Solon 容器的独立设计有一定关系. 1.Solon 注解容器的运行特点 有什么注解要处理的(注解能力被规范成了四种),提前注册登记 全局只扫描一次,并在扫描过程中统一处理注解相关 ...

  7. XXE注入详解

    XML介绍 XML全称可扩展标记语言(EXtensible Markup Language),XML跟HTML格式类似,但是作用不同,XML侧重于数据传输,HTML注重于标记语言,也就是说XML其实是 ...

  8. 认识3D模型-GLTF文件

    GLTF文件格式 glTF的全称(Graphics Language Transmission Format)图形语言传输格式.是三维场景和模型的标准文件格式. glTF 核心是 JSON 文件,描述 ...

  9. 除了mysql 和 sql server, 你还有另外一种选择 postgreSQL

    数据库的重要性,不用多说.数据库的名字,大家应该也知道很多.就国内来说,使用者最多的应该是mysql 和sql server,大企业用ORACLE的也不在少数. 就我个人而言,在使用.NET的时候,基 ...

  10. 小知识:NFS卡死问题处理

    现象: df -h发现长时间卡住,无法显示结果. 根据以往运维经验,通常df -h这种操作都无法显示时,首先就要确认是否有NFS挂载的目录,如果有,确认NFS目录是否正常. 这是最常见的情况,最近又遇 ...