最近因为需要重新启用Skywalking,过程和问题依旧先在这里记录下来

Skywalking在8.4.0版本以上新增了日志集成系统,因为我这个应用集成了log4j2,所以以log4j2举例,不过也会有log4j以及logback的例子

版本:

  • skywalking:8.6.0
  • ES:7
  • log4j2:2.13.0

关于skywalking的安装部署可以看以前的文章,这里就不再赘述了

skywalking-log4j2官方文档:

https://skywalking.apache.org/docs/main/v8.6.0/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/

skywalking-logback使用的官方文档:

https://skywalking.apache.org/docs/main/v8.6.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

skywalking-log4j使用的官方文档:

https://skywalking.apache.org/docs/main/v8.4.0/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/

还是建议优先看文档

在文档中我们可以看到已经说的很清楚了在pom.xml以及log4j2.xml添加引用

pom.xml

1
2
3
4
5
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-2.x</artifactId>
<version>8.6.0</version>
</dependency>

log4j2.xml

添加控制台输出:

1
2
3
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} [%traceId] - %msg%n"/>
</Console>

添加grpc界面集成:

1
2
3
<GRPCLogClientAppender name="grpc-log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</GRPCLogClientAppender>

开启日志输出:

1
2
3
4
5
<root level="trace">
<appender-ref ref="grpc-log" />
<appender-ref ref="SYSTEM_OUT" />
</root>

还需要在agent/config/agent.config配置文件,添加如下配置信息,及skywalking的log通信用的grpc连接

1
2
3
4
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}

gRPC报告程序可以将收集到的日志转发到SkyWalking OAP服务器或SkyWalking Satellite卫星。跟踪ID,段ID和跨度ID将自动附加到日志。无需修改现有布局。

启动应用 可以看到TID已经在控制台输出了

回到界面也可以看见日志已经集成

\