1.引入skywalking的jar包,导入的包和agent版本一致


  1. <dependency>
  2. <groupId>org.apache.skywalking</groupId>
  3. <artifactId>apm-toolkit-trace</artifactId>
  4. <version>8.12.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.skywalking</groupId>
  8. <artifactId>apm-toolkit-opentracing</artifactId>
  9. <version>8.12.0</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.apache.skywalking</groupId>
  13. <artifactId>apm-toolkit-logback-1.x</artifactId>
  14. <version>8.12.0</version>
  15. </dependency>

2.修改logback.xml


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3. <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
  4. <!-- 日志存放路径 -->
  5. <property name="log.path" value="logs" />
  6. <!-- 日志输出格式 -->
  7. <property name="log.pattern"
  8. value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} %tid - [%method,%line] - %msg%n"/>:ss} %-5level
  9. ${springAppName:-} %thread %logger %msg%n"/>
  10. <!-- 控制台输出 -->
  11. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  12. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  13. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  14. <pattern>${log.pattern}</pattern>
  15. </layout>
  16. </encoder>
  17. </appender>
  18. <!-- 系统日志输出 -->
  19. <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  20. <file>${log.path}/info.log</file>
  21. <!-- 循环政策:基于时间创建日志文件 -->
  22. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  23. <!-- 日志文件名格式 -->
  24. <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
  25. <!-- 日志最大的历史 3天 -->
  26. <maxHistory>3</maxHistory>
  27. <!--单个日志文件的最大体积-->
  28. <maxFileSize>100MB</maxFileSize>
  29. <!--控制所有归档日志文件的总大小-->
  30. <totalSizeCap>200MB</totalSizeCap>
  31. <!--是否在应用启动的时候删除历史日志-->
  32. <cleanHistoryOnStart>true</cleanHistoryOnStart>
  33. </rollingPolicy>
  34. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  35. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  36. <pattern>${log.pattern}</pattern>
  37. </layout>
  38. </encoder>
  39. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  40. <!-- 过滤的级别 -->
  41. <level>info</level>
  42. <!-- 匹配时的操作:接收(记录) -->
  43. <onMatch>ACCEPT</onMatch>
  44. <!-- 不匹配时的操作:拒绝(不记录) -->
  45. <onMismatch>DENY</onMismatch>
  46. </filter>
  47. </appender>
  48. <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  49. <file>${log.path}/error.log</file>
  50. <!-- 循环政策:基于时间创建日志文件 -->
  51. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  52. <!-- 日志文件名格式 -->
  53. <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
  54. <!-- 日志最大的历史 1天 -->
  55. <maxHistory>3</maxHistory>
  56. <!--单个日志文件的最大体积-->
  57. <maxFileSize>100MB</maxFileSize>
  58. <!--控制所有归档日志文件的总大小-->
  59. <totalSizeCap>200MB</totalSizeCap>
  60. <!--是否在应用启动的时候删除历史日志-->
  61. <cleanHistoryOnStart>true</cleanHistoryOnStart>
  62. </rollingPolicy>
  63. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  64. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
  65. <pattern>${log.pattern}</pattern>
  66. </layout>
  67. </encoder>
  68. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  69. <!-- 过滤的级别 -->
  70. <level>error</level>
  71. <!-- 匹配时的操作:接收(记录) -->
  72. <onMatch>ACCEPT</onMatch>
  73. <!-- 不匹配时的操作:拒绝(不记录) -->
  74. <onMismatch>DENY</onMismatch>
  75. </filter>
  76. </appender>
  77. <!-- 日志传输到skywalking中的appender,通过qrpc传输 -->
  78. <appender name="gpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
  79. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  80. <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
  81. <Pattern>${log.pattern}</Pattern>
  82. </layout>
  83. </encoder>
  84. </appender>
  85. <!--系统操作日志-->
  86. <root level="info">
  87. <appender-ref ref="file_info"/>
  88. <appender-ref ref="file_error"/>
  89. <appender-ref ref="console"/>
  90. <appender-ref ref="gpc-log" />
  91. </root>
  92. </configuration>

看到日志打印出TID则表示配置成功

3.自定义标签快速定位异常


  1. private final Tracer tracer = new SkywalkingTracer();
  2. private void setSkywalkingTagErrMsg(String msg, String code) {
  3. ActiveSpan span = tracer.activeSpan();
  4. span.setTag("error.msg", msg);
  5. span.setTag("error.code", code);
  6. }
文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览113611 人正在系统学习中

[转帖]SkyWalking集成logback的更多相关文章

  1. Spring Boot 项目实战(二)集成 Logback

    一.前言 上篇介绍了 Spring Boot Maven 多模块项目的搭建方法以及 MyBatis 的集成.通常在调试接口或者排查问题时我们主要借助于日志,一个设计合理的日志文件配置能大大降低我们的排 ...

  2. SpringBoot系列之集成logback实现日志打印(篇二)

    SpringBoot系列之集成logback实现日志打印(篇二) 基于上篇博客SpringBoot系列之集成logback实现日志打印(篇一)之后,再写一篇博客进行补充 logback是一款开源的日志 ...

  3. springboot集成logback日志

    简介 spring boot内部使用Commons Logging来记录日志,但也保留外部接口可以让一些日志框架来进行实现,例如Java Util Logging,Log4J2还有Logback. 如 ...

  4. [转帖] VS集成Qt环境搭建

    http://blog.sina.com.cn/s/blog_a6fb6cc90101gynd.html 用了这么久的Qt,IDE一直都是VS与Creator并用(实际开发以VS为主),至于哪个更好这 ...

  5. Spring Boot 集成 logback日志

    application.properties 配置logback.xml 路径注:如果logback.xml在默认的 src/main/resources 目录下则不需要配置application.p ...

  6. springMVC集成logback日志系统

    一.项目结构 项目介绍:maven搭建的web项目,实现Java日志记录功能.其中logback.xml为日志配置文件,spring-mvc-servlet.xml为spring controller ...

  7. [转帖]SpringBoot集成redisson分布式锁

    SpringBoot集成redisson分布式锁 https://www.cnblogs.com/yangzhilong/p/7605807.html 前几天同事刚让增加上这一块东西. 百度查一下 啥 ...

  8. Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的

    背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...

  9. SpringBoot集成logback后访问日志端点

    问题描述 使用SpringBootAdmin(sba)监控Springboot服务时,配置了logback日志框架,按天滚动生成日志,此时在sba的日志监控页面出现404,如下图所示: 解决方案 查看 ...

  10. 分布式链路追踪体验-skywalking入门使用

    背景 旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉.然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了.或者公司内部有链路追踪系统,虽然可以很轻松地通过 ...

随机推荐

  1. PostgreSQL常用运维SQL

    一.数据库连接 1.获取数据库实例连接数 select count(*) from pg_stat_activity; 2.获取数据库最大连接数 show max_connections 3.查询当前 ...

  2. 消除视觉Transformer与卷积神经网络在小数据集上的差距

    摘要:本文通过多种操作构建混合模型,增强视觉Transformer捕捉空间相关性的能力和其进行通道多样性表征的能力,弥补了Transformer在小数据集上从头训练的精度与传统的卷积神经网络之间的差距 ...

  3. 华为云GaussDB(for openGauss)商用啦!

    摘要:截止目前,华为消费者云已在GaussDB(for openGauss)上线了40+业务,包括弹幕&评论.云空间.地理大数据等业务系统,实时为5亿+用户提供高效服务. 生命在于运动,健康打 ...

  4. 实践GoF的设计模式:单例模式

    摘要:单例模式虽然简单易用,但也是最容易被滥用的设计模式.它并不是"银弹",在实际使用时,还需根据具体的业务场景谨慎使用. 本文分享自华为云社区<[Go实现]实践GoF的23 ...

  5. 近数据处理(NDP)——GaussDB(for MySQL)性能提升的秘密

    摘要:云堆栈的深度集成是释放云数据库力量的关键,华为云在实现这一目标方面处于领先地位,正如GaussDB(for MySQL)所证明的那样. 本文分享自华为云社区<近数据处理(NDP),为Gau ...

  6. 在探索的道路上持续“做对”,火山引擎A/B测试成为这家企业数字基建

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   最近,乐刻的"百城万店"战略在行业激起了许多讨论.在传统健身馆经营承压.服务业难标准化的语 ...

  7. Mac 设置 JAVA_HOME

    Mac /System/Library/Frameworks/JavaVM.framework/Home/bin/java: No such file or directory 查找JAVA_HOME ...

  8. 网络-华为、思科交换机配置TFTP自动备份、NTP时间同步、SYSLOG日志同步

    配置使用TFTP进行交换机配置的自动保存 华为设备 <Huawei-sw>sys [Huawei-sw]set save-configuration interval 60 delay 3 ...

  9. JDk 与 ADB 环境变量配置

    ### Java环境变量配置 首先,JDK是整个Java的核心,包括了Java运行环境,一推Java工具和Java基础的类库. 网址:https://www.oracle.com/technetwor ...

  10. 如何安装和使用 Hugging Face Unity API

    Hugging Face Unity API 提供了一个简单易用的接口,允许开发者在自己的 Unity 项目中方便地访问和使用 Hugging Face AI 模型,已集成到 Hugging Face ...