1. 程式人生 > 其它 >SkyWalking8.5整合spring-logback.xml日誌收集

SkyWalking8.5整合spring-logback.xml日誌收集

SkyWalking8.5整合spring-logback.xml日誌收集

skywalking搭建請參考:https://www.cnblogs.com/yizhipanghu/p/14738492.html

pom引入以下依賴,對應各自skywalking版本(本文使用8.5.0版本apache-skywalking-apm-es7-8.5.0.tar.gz)

       <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1
.x</artifactId> <version>8.5.0</version> </dependency>

skywalking下載地址:https://skywalking.apache.org/downloads/

Spirngboot+Logback整合Skywalking日誌系統

logback-spring.xml配置中加入appender name為 msystem-log的配置

    <appender name="msystem-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"
> <!-- 日誌輸出編碼 --> <encoder> <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> </
appender> <root level="INFO"> <appender-ref ref="msystem-log"/> </root>

整體包含logstash和本地日誌儲存的配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <!-- ELK日誌, 傳送至 appender -->
    <appender name="log-logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!-- logstash地址和埠 -->
        <destination>10.10.10.1:9061</destination>
        <!-- encoder必須配置,有多種可選 -->
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <!-- skywalking外掛, log加tid -->
            <provider class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.logstash.TraceIdJsonProvider" />
            <customFields>{"project":"iservice"}</customFields>
        </encoder>
    </appender>

    <!--定義日誌檔案的儲存地址 勿在 LogBack 的配置中使用相對路徑 -->
    <property name="logPath" value="/home" />
    <property name="appName" value="iservice" />

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logPath}/${appName}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/bak/%d{yyyy-MM-dd}/${appName}-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <maxHistory>15</maxHistory>
            <maxFileSize>20MB</maxFileSize>
            <!--<totalSizeCap>50GB</totalSizeCap>-->
        </rollingPolicy>
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <appender name="msystem-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <!-- 日誌輸出編碼 -->
        <encoder>
            <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- root級別   INFO -->
    <root level="INFO">
        <!-- logstash輸出 -->
        <appender-ref ref="log-logstash"/>
        <appender-ref ref="file" />
        <appender-ref ref="msystem-log"/>
    </root>
</configuration>

agent和oap在不同伺服器上時,需配置agent/config/agent.config配置檔案,在檔案末尾新增如下配置資訊,注意skywalking的log通訊用的grpc

plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:10.10.10.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}

各引數說明

服務執行後即可看到日誌:

官方配置指導:

https://skywalking.apache.org/docs/main/v8.5.0/en/setup/service-agent/java-agent/readme/#table-of-agent-configuration-properties