最近因為需要重新啟用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已經在控制台輸出了
回到界面也可以看見日志已經集成