Skywalking 扩展:TID自定义规则
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自定义规则相关推荐
- 二、SonarQube自定义规则
一.介绍 不可避免的,在实际的开发中sonar提供的官方的代码检测经常不满足我们的要求,比如如下代码: /*** 以下代码sonar会认证name和age是从来没有使用过的,它不认识lombok的 ...
- vuepress2.0使用教程(8)-扩展MD功能(Section扩展及自定义语法)
百家饭团队开发的百家饭OpenAPI平台是用vuepress2.0搭建的,搭建的时候不知道2.0还处在beta状态,所以导致后来踩了一些坑,使用过程中vuepress2.0也从2.0.0-beta.1 ...
- flowable流程图有效性检验,可自定义规则
文章目录 前言 一.主要方法 二.自定义规则校验器 总结 前言 对设计好的流程图xml进行有效性校验,可自定义规则 一.主要方法 package com.lc.workflow.common.util ...
- java自定义findbugs规则_静态代码扫描 (三)——FindBugs 自定义规则入门
准备工作 由于 FindBugs 是分析编译后的 class 文件,也就是字节码文件.我们需要了解 FindBugs 底层的处理机制.根据FindBugs 官网文档描述,FindBugs 使用了BCE ...
- sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...
1 前言 2 自定义规则实现 2.1 规则功能 2.2 实现规则的理论基础 2.3 规则代码实现 3 总结 4 参考资料 1 前言 为了实现如标题所述的将多个静态库合并为一个动态库,内置的 Bazel ...
- layui表单验证 内置自定义规则 - 使用说明
关于 layui表单的验证规则.调用.自定义规则的使用经验总结: 除了 layui 本身配套的一个验证体系,还支持开发者自定义验证规则(如上表中的[自定义密码验证(代码参考下文)]),并直接嵌入到页面 ...
- drools动态配置规则_微服务实战系列(八)-网关springcloud gateway自定义规则
1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...
- group by 如何自定义规则分组,合并分组
sql语句 group by时如何自定义规则进行分组 1. 问题描述 最近开发项目时遇到了一个需求:统计不同类型的物品的数量,但是某几种类型要合并到一起进行统计,例如:有A,B,C,D,E,F,G其中 ...
- mcafee自定义规则在系统中表示
由于是转载,文章中的连接是无效的,看官勿点! 使用工具可以查看注册表自定义规则,随意导入.修改和合并自定义规则,见我的另一帖子. 对于显示的结果各项含义举例如下: 文件规则: UserString(用 ...
最新文章
- 配置Apache 2.2+PHP 5.2.9支持OCI通过Oracle9i Client连接Oracle
- 快头条月增迅猛超微视 三四线城市“流量炼金”的上限在哪?
- 规律的更新状态是一个好习惯
- 基于python爬虫技术的应用_基于Python爬虫技术的应用
- 关于 TypeScript 内 constructor signature 的一些失败尝试
- 使用SAP API portal进行SAP SuccessFactors的API测试
- 2、安装和连接mysql
- r语言 柱状图加星号_R语言绘制带有显著性字母标记的柱状图
- HDU 1827:Summer Holiday(强连通)
- 打孔屏+屏下指纹!这届iPhone全是安卓玩剩下的
- android在线root,KingRoot全球率先实现Android 7.0一键 Root
- vim与外部文件的粘帖复制
- hibernate入门二之单表操作
- GmId设计方法介绍及曲线仿真
- MAC系统下破解WIFI密码
- div+css静态网页设计 web网页设计实例作业 ——中国水墨风的小学学校网站(6页) 专题网页设计作业模板 学校物静态HTML网页模板下载
- 利用计算机来对指纹,指纹自动识别系统.doc
- PXE无盘WIN98网络安装指南(转)
- 深度解析“中国制造2025”VS德国“工业4.0”,一场没有硝烟战争
- 【数据库学习】17 视图
热门文章
- 【Kaggle】AMEX信用违约预测比赛总结
- android:layout_marginleft 代码设置,在android的java代码中对控件的layout_marginLeft进行设置...
- jQuery获取当前时间
- 第一届世界区块链大会主会场:25日下午“11+3+1”让区块链全球行
- Android给View设置margin值
- wch-link替代st-link(实际支持大部分arm核芯片)
- 未来人类T5 睡眠后无法唤醒屏幕 但没死机 假睡死 问题 不完美的解决
- Lunix历史及如何学习
- HUAWEI(17)——Mux-VLAN
- linux 查看文件字数,Linux 中如何查看文件的行数,字数,字节数