Skywalking8.8日志采集(使用springboot默认日志logback)

Skywalking8.8日志采集(使用springboot默认日志logback)

  1. 引入依赖

    <!-- 如果想在项目代码中获取链路TraceId,则需要引入此依赖 -->
    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-trace</artifactId>
        <version>8.8.0</version>
    </dependency>
    <!-- 自定义功能相关, 比如自定义tag -->
    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-opentracing</artifactId>
        <version>8.8.0</version>
    </dependency>
    <!-- skywalking 日志记录 logback插件 -->
    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-logback-1.x</artifactId>
        <version>8.8.0</version>
    </dependency>
    
  2. 编写logback日志配置文件。在resources下新建一个logback-spring.xml文件,根据官网文档编写配置文件,可以写作以下两种。
    两者的区别就是layout中是采用TraceIdPatternLogbackLayout还是TraceIdMDCPatternLogbackLayout,如果采用TraceIdMDCPatternLogbackLayout,需要将[%tid]改为[%X{tid}](打印在控制台)

        <!-- class="ch.qos.logback.core.ConsoleAppender"是指打印到控制台 -->
        <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%n</Pattern>
                </layout>
            </encoder>
        </appender>
    
    	<!-- with the MDC, set %X{tid} in Pattern -->
    	<!-- MDC是什么: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%n</Pattern>
                </layout>
            </encoder>
        </appender>
    
  3. 调用接口就能看到相关的日志信息

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epKL0aO6-1666934470904)(C:\Users\13301\AppData\Roaming\Typora\typora-user-images\image-20221028131258243.png)]

  4. 确认日志没问题我们推送到skywalking, 新增日志配置

    <property name="APM_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n" />
        <!--  skyWalking日志采集  -->
        <appender name="APM_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>${APM_PATTERN}</Pattern>
                </layout>
            </encoder>
        </appender>
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uCTRdwZV-1666934470905)(C:\Users\13301\AppData\Roaming\Typora\typora-user-images\image-20221028131505077.png)]

  5. 完整版logback-spring.xml

    <?xml version="1.0" encoding="utf-8" ?>
    
    <configuration>
    
    
        <!-- 引入 Spring Boot 默认的 logback XML 配置文件 -->
        <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    
        <!--  skywalking日志打印到控制台  -->
        <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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
                </layout>
            </encoder>
        </appender>
    
        <property name="APM_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n" />
        <!--  skyWalking日志采集  -->
        <appender name="APM_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>${APM_PATTERN}</Pattern>
                </layout>
            </encoder>
        </appender>
    
    
        <!-- 原有基础上加上这句 -->
        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="APM_LOG"/>
        </root>
    
    
    </configuration>
    
  6. 如果你的agent和oap不在一台服务器上, 记得修改配置**(改成oap的ip:port)**

    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}
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLSZv3YR-1666934470905)(C:\Users\13301\AppData\Roaming\Typora\typora-user-images\image-20221028132011039.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只因为你温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值