logback 配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><springProperty scope="context" name="LOG_HOME" source="logging.file.path" defaultValue="/var/logs/tsp-server"/><springProperty scope="context" name="LOG_NAME" source="spring.application.name" defaultValue="tsp-device"/><property name="CONSOLE_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5level) %magenta(${PID}) --- [%15.15thread] %cyan(%-40.40logger) : %msg%n"/><property name="FILE_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5level ${PID} --- [%15.15thread] %-40.40logger : %msg%n"/><property name="STDOUT_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - [%tid] - %msg%n"/><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder><!--保证控制台打印链路信息--><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${STDOUT_PATTERN}</pattern></layout></encoder></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.core.filter.EvaluatorFilter"><evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"><marker>MARKER_MP_NOTIFY</marker></evaluator><onMismatch>NEUTRAL</onMismatch><onMatch>DENY</onMatch></filter><file>${LOG_HOME}/${LOG_NAME}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${LOG_NAME}_%d{yyyy-MM-dd}_%i.log</fileNamePattern><!-- 单个日志文件最多50MB --><maxFileSize>50MB</maxFileSize><!-- 日志文件保留天数 --><maxHistory>30</maxHistory><!-- 最大不能超过20GB, 到了这个值, 就会删除旧的日志 --><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><pattern>${FILE_LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder><!--保证日志文件打印链路信息--><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${STDOUT_PATTERN}</pattern></layout></encoder></appender><!--整合skyWalking,日志上传至skyWalking--><property name="SKY_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss} | %-5level | %thread | %tid | %logger{50} %L\ | %msg%n" /><appender name="SKY_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender" ><!-- 对日志进行格式化 --><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${SKY_LOG_PATTERN}</pattern></layout></encoder></appender><root level="info"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/><appender-ref ref="SKY_LOG"/></root></configuration>

主要将此处的layout 改成自定义的

       <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>${SKY_LOG_PATTERN}</pattern></layout>#替换成自定义的<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="com.woodare.tsp.common.core.logback.TraceIdPatternLogbackLayout"><pattern>${SKY_LOG_PATTERN}</pattern></layout></encoder>

LogbackPatternConverter

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;/*** ClassName LogbackPatternConverter** @author wang* Date 2022/6/27 14:29*/
public class LogbackPatternConverter extends ClassicConverter {public LogbackPatternConverter() {}@Overridepublic String convert(ILoggingEvent iLoggingEvent) {return "TID: 20220627";}}

标题 TraceIdPatternLogbackLayout


import ch.qos.logback.classic.PatternLayout;
import org.springframework.stereotype.Component;/*** ClassName TraceIdPatternLogbackLayout** @author wang* Date 2022/6/27 14:28*/
@Component
public class TraceIdPatternLogbackLayout extends PatternLayout {public TraceIdPatternLogbackLayout() {}static {DEFAULT_CONVERTER_MAP.put("tid", LogbackPatternConverter.class.getName());}
}

参考博客

https://blog.csdn.net/a17816876003/article/details/115682360

Skywalking 扩展:TID自定义规则相关推荐

  1. 二、SonarQube自定义规则

    一.介绍   不可避免的,在实际的开发中sonar提供的官方的代码检测经常不满足我们的要求,比如如下代码: /*** 以下代码sonar会认证name和age是从来没有使用过的,它不认识lombok的 ...

  2. vuepress2.0使用教程(8)-扩展MD功能(Section扩展及自定义语法)

    百家饭团队开发的百家饭OpenAPI平台是用vuepress2.0搭建的,搭建的时候不知道2.0还处在beta状态,所以导致后来踩了一些坑,使用过程中vuepress2.0也从2.0.0-beta.1 ...

  3. flowable流程图有效性检验,可自定义规则

    文章目录 前言 一.主要方法 二.自定义规则校验器 总结 前言 对设计好的流程图xml进行有效性校验,可自定义规则 一.主要方法 package com.lc.workflow.common.util ...

  4. java自定义findbugs规则_静态代码扫描 (三)——FindBugs 自定义规则入门

    准备工作 由于 FindBugs 是分析编译后的 class 文件,也就是字节码文件.我们需要了解 FindBugs 底层的处理机制.根据FindBugs 官网文档描述,FindBugs 使用了BCE ...

  5. sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...

    1 前言 2 自定义规则实现 2.1 规则功能 2.2 实现规则的理论基础 2.3 规则代码实现 3 总结 4 参考资料 1 前言 为了实现如标题所述的将多个静态库合并为一个动态库,内置的 Bazel ...

  6. layui表单验证 内置自定义规则 - 使用说明

    关于 layui表单的验证规则.调用.自定义规则的使用经验总结: 除了 layui 本身配套的一个验证体系,还支持开发者自定义验证规则(如上表中的[自定义密码验证(代码参考下文)]),并直接嵌入到页面 ...

  7. drools动态配置规则_微服务实战系列(八)-网关springcloud gateway自定义规则

    1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...

  8. group by 如何自定义规则分组,合并分组

    sql语句 group by时如何自定义规则进行分组 1. 问题描述 最近开发项目时遇到了一个需求:统计不同类型的物品的数量,但是某几种类型要合并到一起进行统计,例如:有A,B,C,D,E,F,G其中 ...

  9. mcafee自定义规则在系统中表示

    由于是转载,文章中的连接是无效的,看官勿点! 使用工具可以查看注册表自定义规则,随意导入.修改和合并自定义规则,见我的另一帖子. 对于显示的结果各项含义举例如下: 文件规则: UserString(用 ...

最新文章

  1. 配置Apache 2.2+PHP 5.2.9支持OCI通过Oracle9i Client连接Oracle
  2. 快头条月增迅猛超微视 三四线城市“流量炼金”的上限在哪?
  3. 规律的更新状态是一个好习惯
  4. 基于python爬虫技术的应用_基于Python爬虫技术的应用
  5. 关于 TypeScript 内 constructor signature 的一些失败尝试
  6. 使用SAP API portal进行SAP SuccessFactors的API测试
  7. 2、安装和连接mysql
  8. r语言 柱状图加星号_R语言绘制带有显著性字母标记的柱状图
  9. HDU 1827:Summer Holiday(强连通)
  10. 打孔屏+屏下指纹!这届iPhone全是安卓玩剩下的
  11. android在线root,KingRoot全球率先实现Android 7.0一键 Root
  12. vim与外部文件的粘帖复制
  13. hibernate入门二之单表操作
  14. GmId设计方法介绍及曲线仿真
  15. MAC系统下破解WIFI密码
  16. div+css静态网页设计 web网页设计实例作业 ——中国水墨风的小学学校网站(6页) 专题网页设计作业模板 学校物静态HTML网页模板下载
  17. 利用计算机来对指纹,指纹自动识别系统.doc
  18. PXE无盘WIN98网络安装指南(转)
  19. 深度解析“中国制造2025”VS德国“工业4.0”,一场没有硝烟战争
  20. 【数据库学习】17 视图

热门文章

  1. 【Kaggle】AMEX信用违约预测比赛总结
  2. android:layout_marginleft 代码设置,在android的java代码中对控件的layout_marginLeft进行设置...
  3. jQuery获取当前时间
  4. 第一届世界区块链大会主会场:25日下午“11+3+1”让区块链全球行
  5. Android给View设置margin值
  6. wch-link替代st-link(实际支持大部分arm核芯片)
  7. 未来人类T5 睡眠后无法唤醒屏幕 但没死机 假睡死 问题 不完美的解决
  8. Lunix历史及如何学习
  9. HUAWEI(17)——Mux-VLAN
  10. linux 查看文件字数,Linux 中如何查看文件的行数,字数,字节数