[转帖]SkyWalking集成logback
1.引入skywalking的jar包,导入的包和agent版本一致
-
<dependency>
-
<groupId>org.apache.skywalking</groupId>
-
<artifactId>apm-toolkit-trace</artifactId>
-
<version>8.12.0</version>
-
</dependency>
-
<dependency>
-
<groupId>org.apache.skywalking</groupId>
-
<artifactId>apm-toolkit-opentracing</artifactId>
-
<version>8.12.0</version>
-
</dependency>
-
<dependency>
-
<groupId>org.apache.skywalking</groupId>
-
<artifactId>apm-toolkit-logback-1.x</artifactId>
-
<version>8.12.0</version>
-
</dependency>
2.修改logback.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
<configuration scan="true" scanPeriod="60 seconds" debug="false">
-
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
-
<!-- 日志存放路径 -->
-
<property name="log.path" value="logs" />
-
-
<!-- 日志输出格式 -->
-
<property name="log.pattern"
-
value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} %tid - [%method,%line] - %msg%n"/>:ss} %-5level
-
${springAppName:-} %thread %logger %msg%n"/>
-
-
<!-- 控制台输出 -->
-
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
-
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
-
<pattern>${log.pattern}</pattern>
-
</layout>
-
</encoder>
-
</appender>
-
-
<!-- 系统日志输出 -->
-
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>${log.path}/info.log</file>
-
<!-- 循环政策:基于时间创建日志文件 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-
<!-- 日志文件名格式 -->
-
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
-
<!-- 日志最大的历史 3天 -->
-
<maxHistory>3</maxHistory>
-
<!--单个日志文件的最大体积-->
-
<maxFileSize>100MB</maxFileSize>
-
<!--控制所有归档日志文件的总大小-->
-
<totalSizeCap>200MB</totalSizeCap>
-
<!--是否在应用启动的时候删除历史日志-->
-
<cleanHistoryOnStart>true</cleanHistoryOnStart>
-
</rollingPolicy>
-
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
-
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
-
<pattern>${log.pattern}</pattern>
-
</layout>
-
</encoder>
-
<filter class="ch.qos.logback.classic.filter.LevelFilter">
-
<!-- 过滤的级别 -->
-
<level>info</level>
-
<!-- 匹配时的操作:接收(记录) -->
-
<onMatch>ACCEPT</onMatch>
-
<!-- 不匹配时的操作:拒绝(不记录) -->
-
<onMismatch>DENY</onMismatch>
-
</filter>
-
</appender>
-
-
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>${log.path}/error.log</file>
-
<!-- 循环政策:基于时间创建日志文件 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-
<!-- 日志文件名格式 -->
-
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
-
<!-- 日志最大的历史 1天 -->
-
<maxHistory>3</maxHistory>
-
<!--单个日志文件的最大体积-->
-
<maxFileSize>100MB</maxFileSize>
-
<!--控制所有归档日志文件的总大小-->
-
<totalSizeCap>200MB</totalSizeCap>
-
<!--是否在应用启动的时候删除历史日志-->
-
<cleanHistoryOnStart>true</cleanHistoryOnStart>
-
</rollingPolicy>
-
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
-
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
-
<pattern>${log.pattern}</pattern>
-
</layout>
-
</encoder>
-
<filter class="ch.qos.logback.classic.filter.LevelFilter">
-
<!-- 过滤的级别 -->
-
<level>error</level>
-
<!-- 匹配时的操作:接收(记录) -->
-
<onMatch>ACCEPT</onMatch>
-
<!-- 不匹配时的操作:拒绝(不记录) -->
-
<onMismatch>DENY</onMismatch>
-
</filter>
-
</appender>
-
-
<!-- 日志传输到skywalking中的appender,通过qrpc传输 -->
-
<appender name="gpc-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.mdc.TraceIdMDCPatternLogbackLayout">
-
<Pattern>${log.pattern}</Pattern>
-
</layout>
-
</encoder>
-
</appender>
-
-
<!--系统操作日志-->
-
<root level="info">
-
<appender-ref ref="file_info"/>
-
<appender-ref ref="file_error"/>
-
<appender-ref ref="console"/>
-
<appender-ref ref="gpc-log" />
-
</root>
-
-
</configuration>
看到日志打印出TID则表示配置成功
3.自定义标签快速定位异常
-
private final Tracer tracer = new SkywalkingTracer();
-
-
private void setSkywalkingTagErrMsg(String msg, String code) {
-
ActiveSpan span = tracer.activeSpan();
-
span.setTag("error.msg", msg);
-
span.setTag("error.code", code);
-
}
[转帖]SkyWalking集成logback的更多相关文章
- Spring Boot 项目实战(二)集成 Logback
一.前言 上篇介绍了 Spring Boot Maven 多模块项目的搭建方法以及 MyBatis 的集成.通常在调试接口或者排查问题时我们主要借助于日志,一个设计合理的日志文件配置能大大降低我们的排 ...
- SpringBoot系列之集成logback实现日志打印(篇二)
SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...
- springboot集成logback日志
简介 spring boot内部使用Commons Logging来记录日志,但也保留外部接口可以让一些日志框架来进行实现,例如Java Util Logging,Log4J2还有Logback. 如 ...
- [转帖] VS集成Qt环境搭建
http://blog.sina.com.cn/s/blog_a6fb6cc90101gynd.html 用了这么久的Qt,IDE一直都是VS与Creator并用(实际开发以VS为主),至于哪个更好这 ...
- Spring Boot 集成 logback日志
application.properties 配置logback.xml 路径注:如果logback.xml在默认的 src/main/resources 目录下则不需要配置application.p ...
- springMVC集成logback日志系统
一.项目结构 项目介绍:maven搭建的web项目,实现Java日志记录功能.其中logback.xml为日志配置文件,spring-mvc-servlet.xml为spring controller ...
- [转帖]SpringBoot集成redisson分布式锁
SpringBoot集成redisson分布式锁 https://www.cnblogs.com/yangzhilong/p/7605807.html 前几天同事刚让增加上这一块东西. 百度查一下 啥 ...
- Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的
背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...
- SpringBoot集成logback后访问日志端点
问题描述 使用SpringBootAdmin(sba)监控Springboot服务时,配置了logback日志框架,按天滚动生成日志,此时在sba的日志监控页面出现404,如下图所示: 解决方案 查看 ...
- 分布式链路追踪体验-skywalking入门使用
背景 旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉.然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了.或者公司内部有链路追踪系统,虽然可以很轻松地通过 ...
随机推荐
- 编写一个小而强大的 Windows 动态屏保壁纸
写在前面 两年前我做了第一个开源软件 DreamScene2 动态桌面,如今受到了很多人的喜欢,这增加了我继续做好开源软件的信心.之前的这个软件一直有人希望我加入一个设置屏保壁纸的功能,因为 Drea ...
- AI开发效率低,你可以试试华为NAIE AutoML
摘要:为解决AI工程师在开发AI应用场景所遇到的问题,NAIE平台落地AutoML框架(工具)来辅助大家更高效.更迅速解决AI开发问题. 你是不是还在为掌握的AI算法少而烦恼? 你是不是还在为选择某个 ...
- 直击火山引擎V-Tech峰会!仅需简单登录,即可极速体验数据引擎ByteHouse
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 9月19日,火山引擎"数据飞轮·V-Tech数据驱动科技峰会"在上海举办.会上重磅发布数智 ...
- 负载均衡 SLB 健康检查异常
负载均衡 SLB 健康检查异常,接口地址不能访问 接口地址的访问首先需要健康检查状态为正常. 如果接口没有"首页",需要提供一个可访问的controller
- 通义千问,阿里版ChatGPT,拿到邀请码了
大家好,我是章北海mlpy 通义千问是阿里巴巴推出的一个大型预训练模型,是达摩院自主研发的超大规模语言模型,能够回答问题.创作文字,还能表达观点.撰写代码. 昨天中午,阿里云通过官方微信公众号对旗下的 ...
- ABAP步循环
一.在界面中循环输出行数据,屏幕直接画出行数,需要计算翻页,一旦界面行数变动,则需要更改代码,所以引入步循环 二.步循环 首先在界面上画出要展示的内容 注意,在步循环中,文本的名称和输入框的名称不能相 ...
- PS CJ34预算转借
一.CJ34,输入发出预算和接收预算的WBS 二.调用BAPI "-----------------------------------------@斌将军----------------- ...
- L1-048 矩阵A乘以B (15分)
给定两个矩阵A和B,要求你计算它们的乘积矩阵 \(AB\).需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有 \(R_a\) 行.\(C_a\) 列,B有 \(R_b\) 行.\(C_b\) 列, ...
- L1-020 帅到没朋友 (20分)
当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数:随后N行,每行首先给 ...
- Web Components从技术解析到生态应用个人心得指北
Web Components浅析 Web Components 是一种使用封装的.可重用的 HTML 标签.样式和行为来创建自定义元素的 Web 技术. Web Components 自己本身不是一个 ...