微服务日志追踪,Skywalking接入TraceId功能
微服务日志追踪
一、借助skywalking追加traceId
背景:在微服务或多副本中难以观察一个链路的日志,需要通过唯一traceId标识来查找,下面介绍Skywalking-traceId在Java中的配置方法。介绍两种java日志的配置方法。
logback
- pom.xml增加依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.8.0</version>
</dependency>
- 修改日志配置文件,在相应的appender下加入encoder,注意class和tid字段
<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%tid] [%thread] %c [%L] -| %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>${PATTERN}</pattern>
</layout>
</encoder>
</appender>
- 官方文档:https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/#logback-plugin
log4j2
- pom.xml增加依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-2.x</artifactId>
<version>8.8.0</version>
</dependency>
- 修改日志配置文件,只需要加入traceId字段即可
<property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%traceId] [%thread] [%-5level] %msg %l%n"/>
- 官方文档:https://skywalking.apache.org/docs/skywalking-java/next/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/#print-trace-id-in-your-logs
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QwBiQqwC-1665464928340)(http://showdoc.cosmoplat.com/server/index.php?s=/api/attachment/visitFile&sign=e8dccb7e3fdacb59d283f805bcb835b5)]
二、让skywalking显示日志内容
背景:可以通过配置将日志的内容通过gRPC转发给skywalking服务端,进而在用户端查看日志。
版本差异
skywalking 8.7 与 8.8 是版本分水线,关于gRPC这部分的配置不同,以下介绍基于8.8+
,java-agent的版本使用8.8+,否则没有GRPCLogClientAppender
类。
8.8
日志配置说明:https://github.com/apache/skywalking-java/blob/v8.8.0/docs/en/setup/service-agent/java-agent/Application-toolkit-log4j-2.x.md
配置文件清单:https://github.com/apache/skywalking-java/blob/v8.8.0/docs/en/setup/service-agent/java-agent/configurations.md
8.7
日志配置说明:https://github.com/apache/skywalking-java/blob/v8.7.0/docs/en/setup/service-agent/java-agent/Application-toolkit-log4j-2.x.md
配置文件清单:https://github.com/apache/skywalking-java/blob/v8.7.0/docs/en/setup/service-agent/java-agent/README.md
logback配置文件
<appender name="GRPC" 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>${PATTERN}</pattern>
</layout>
</encoder>
</appender>
log4j2配置文件
<GRPCLogClientAppender name="GRPC">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</GRPCLogClientAppender>
更多推荐
所有评论(0)