logback-kafka.xml 1.96 KB
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 本地服务的名称 -->
    <springProperty scope="context" name="app_name" source="spring.application.name"/>
    <contextName>${app_name}</contextName>
    <!-- 包含 logback 的基础配置,路径就是所在包 -->
    <include resource="com/csbr/cloud/common/logback/logback-base.xml"/>
    <!--   增加skywalking配置日志收集-->
    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>
    <!-- 控制打印输出的内容 -->
    <root level="INFO">
        <appender-ref ref="FILE_ERROR"/>
        <!--        <appender-ref ref="FILE_WARN"/>-->
        <appender-ref ref="FILE_INFO"/>
        <!-- 控制台 输出-->
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="grpc-log"/>
    </root>

    <springProperty scope="context" name="kafka_server" source="spring.kafka.bootstrap-servers" />
    <springProperty scope="context" name="topci_prefix" source="csbr.kafka.topic-prefix" />

    <!-- 输出到Kafka -->
    <appender name="kafkaAppender" class="com.csbr.cloud.common.logback.KafkaAppender">
        <bootstrapServers>${kafka_server}</bootstrapServers>
        <topic>csbr_fbt_log</topic>
        <prefix>${topci_prefix}</prefix>
        <formatter class="com.csbr.cloud.common.logback.JsonFormatter">
            <expectJson>false</expectJson>
        </formatter>
    </appender>

    <logger name="com.csbr.cloud.common.exception.GlobalExceptionHandler" level="ERROR" additivity="true">
        <appender-ref ref="kafkaAppender"></appender-ref>
    </logger>
</configuration>