最近因为需要重新启用Skywalking,过程和问题依旧先在这里记录下来
Skywalking在8.4.0版本以上新增了日志集成系统,因为我这个应用集成了log4j2,所以以log4j2举例,不过也会有log4j以及logback的例子
版本:
- skywalking:8.6.0
- ES:7
- log4j2:2.13.0
关于skywalking的安装部署可以看以前的文章,这里就不再赘述了
skywalking-log4j2官方文档:
skywalking-logback使用的官方文档:
skywalking-log4j使用的官方文档:
还是建议优先看文档
在文档中我们可以看到已经说的很清楚了在pom.xml以及log4j2.xml添加引用
pom.xml
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-2.x</artifactId>
<version>8.6.0</version>
</dependency>
log4j2.xml
添加控制台输出:
<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界面集成:
<GRPCLogClientAppender name="grpc-log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</GRPCLogClientAppender>
开启日志输出:
<root level="trace">
<appender-ref ref="grpc-log" />
<appender-ref ref="SYSTEM_OUT" />
</root>
还需要在agent/config/agent.config配置文件,添加如下配置信息,及skywalking的log通信用的grpc连接
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已经在控制台输出了
回到界面也可以看见日志已经集成