码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringCloud链路追踪SkyWalking-第六章-日志采集


    目录

    • 参考
    • 引入依赖,版本要在8.4.0以上
    • 添加logback配置文件
    • 修改logback.yml
      • 方法一 按需设置打印
      • 方法二 搜集所有日志
    • 修改agent配置文件
      • 8.8.0以上版本
      • 8.8.0以下版本
    • 分析
    • 问题
      • SpringGateway无法打印tid

    参考

    文档:https://skyapm.github.io/document-cn-translation-of-skywalking/zh/8.0.0/setup/service-agent/java-agent/Application-toolkit-logback-1.x.html
    官方文档:https://github.com/apache/skywalking/blob/v8.5.0/docs/en/setup/service-agent/java-agent/Application-toolkit-logback-1.x.md

    9.1.0文档:https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/readme/

    引入依赖,版本要在8.4.0以上

    版本需要对应skywalking-agent的版本,最新是8.11.0

    <dependency>
    	<groupId>org.apache.skywalkinggroupId>
        <artifactId>apm-toolkit-logback-1.xartifactId>
        <version>${skywalking.version}version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    添加logback配置文件

    在这里插入图片描述
    修改application.yml

    logging:
      # 如果不配置如下,默认读取logback.xml
      #config: classpath:logback.xml
    
    • 1
    • 2
    • 3

    修改logback.yml

    重点是设置输出tid,可以在任何位置设置打印。
    当你使用-javaagent激活skywalking tracer后,logback将会输出traceId(如果存在的话)。如果tracer未激活,输出将是TID: N/A

    方法一 按需设置打印

    编写logback⽇志配置⽂件。在resources下新建⼀个logback-spring.xml⽂件,根据官⽹⽂档编写配置⽂件,可以写作以下两种。TraceIdMDCPatternLogbackLayout,需要将[%tid]改为[%X{tid}]

    • 在logback.xml的Pattern部分中设置%tid
        <appender name="STDOUT" 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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%nPattern>
                layout>
            encoder>
        appender>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 使用MDC,在logback.xml的Pattern部分中设置%X{tid}
      MDC采⽤Map的⽅式存储上下⽂,线程独⽴的,⼦线程会从⽗线程拷贝上下⽂
        <appender name="STDOUT" 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.mdc.TraceIdMDCPatternLogbackLayout">
                    <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%nPattern>
                layout>
            encoder>
        appender>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    方法二 搜集所有日志

    这种方式会把所有日志都集成到skywalking了。
    我们在logback.xml中单独定义添加如下

    
        <appender name="grpc-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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%npattern>
                layout>
            encoder>
        appender>
    
    <springProfile name="dev">
            <root level="info">
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="DEBUG_FILE"/>
                <appender-ref ref="INFO_FILE"/>
                <appender-ref ref="WARN_FILE"/>
                <appender-ref ref="ERROR_FILE"/>
                <appender-ref ref="grpc-log"/>
            root>
        springProfile>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    修改agent配置文件

    假如skywalking没有部署在本地,就需要作如下配置
    打开agent/config/agent.config配置文件,添加如下配置信息

    8.8.0以上版本

    配置项说明:https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/configurations/
    在这里插入图片描述

    8.8.0以下版本

    Add config of the plugin or use default

    plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:127.0.0.1}
    plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
    plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    分析

    我们发送请求之后在控制台会输入如下:
    在这里插入图片描述
    在skywalking中可以看到如下:
    在这里插入图片描述

    问题

    SpringGateway无法打印tid

    参考:SpringCloudGateway使用Skywalking时日志打印traceId

  • 相关阅读:
    mmpose关键点(一):评价指标(PCK,OKS,mAP)
    机器视觉面试-查漏补缺
    香蕉派BPI-M6 采用深蕾半导体Vs680芯片设计,板载4G LPDDR4和16G eMMC存储
    刷近两年新低 人民币汇率破7 意味着什么
    通过实战总结的 使用GoFrame小技巧
    SourceTree 的使用
    数据分析之Excel的基本功能(下)
    victoriaMetrics库之布隆过滤器
    MySQL-SQL语言
    idea(添加jsp文件模板)
  • 原文地址:https://blog.csdn.net/Blueeyedboy521/article/details/126509520
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号