对接日志中心 —— TraceId与日志组件集成

通过 Skywalking 提供的工具包,我们可以将Skywalking在追踪过程中生成的TraceId唯一标识集成到我们业务应用中常见的日志组件logback、log4j。其中lo4j支持1.x和2.x版本。

本章节参考源码在Github

最终效果:

2018-07-25 17:44:58.842 [TID:N/A] [main] INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer -Tomcat started on port(s): 8001 (http)
2018-07-25 17:44:58.852 [TID:N/A] [main] INFO  i.d.n.s.l.AgentLog4jDemoApplication -Started AgentLog4jDemoApplication in 4.03 seconds (JVM running for 12.204)
2018-07-25 17:45:10.226 [TID:39.58.15325119102050001] [http-nio-8001-exec-1] INFO  o.a.c.c.C.[Tomcat].[localhost].[/] -Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-07-25 17:45:10.226 [TID:39.58.15325119102050001] [http-nio-8001-exec-1] INFO  o.s.web.servlet.DispatcherServlet -FrameworkServlet 'dispatcherServlet': initialization started
2018-07-25 17:45:10.247 [TID:39.58.15325119102050001] [http-nio-8001-exec-1] INFO  o.s.web.servlet.DispatcherServlet -FrameworkServlet 'dispatcherServlet': initialization completed in 21 ms
2018-07-25 17:45:10.314 [TID:39.58.15325119102050001] [http-nio-8001-exec-1] INFO  i.d.n.sw.log4j.HelloWorldController -words:demo

步骤一

此处以logback工具包为例,在你的业务项目中,使用 Maven 或者 Gradle 导入相应的依赖工具包:

  • Maven 在pom.xml文件中添加如下依赖。
<!-- https://mvnrepository.com/artifact/org.apache.skywalking/apm-toolkit-logback-1.x -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>6.6.0</version>
</dependency>

注意:工具包版本可以参考:https://mvnrepository.com/artifact/org.apache.skywalking/apm-toolkit-logback-1.x

  • Gradle 在build.gradle中配置如下依赖:
dependencies {
    ······
    compile 'org.apache.skywalking:apm-toolkit-logback-1.x:6.6.0'
    ······
}

步骤二

需要对你的日志组件配置文件中添加如下配置:

......
<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>
......

最终运行你的应用/服务

使用-javaagent参数激活Skywalking的探针, 如果当前上下文中存在traceid,logback将输出traceId。否则将输出TID: N/A.

-javaagent的使用

java -javaagent:/Your/path/to/skywalking/agent/incubator-skywalking/skywalking-agent/skywalking-agent.jar -jar -Dskywalking.agent.service_name=demo-project demo-project.jar

你也可以参考前面章节中的Jar/War包接入Skywalking

Copyright © www.daocloud.io 2019 all right reserved,powered by Gitbook修订时间: 2020-09-03 09:51:46

results matching ""

    No results matching ""