Spring Boot2 集成 logback kafkaAppender输出日志到kafka
在实际开发工作中,微服务日志收集、安全日志上报等功能是志在必行的功能,以下就是一种日志上报方式。参考https://github.com/danielwegener/logback-kafka-appender1.使用maven引入所需要的jar包<!-- logback-kafka-appender --><dependency><groupId>com.gi
·
在实际开发工作中,微服务日志收集、安全日志上报等功能是志在必行的功能,以下就是一种日志上报方式。参考 https://github.com/danielwegener/logback-kafka-appender
1.使用maven引入所需要的jar包
<!-- logback-kafka-appender -->
<dependency>
<groupId>com.github.danielwegener</groupId>
<artifactId>logback-kafka-appender</artifactId>
<version>0.2.0-RC2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>runtime</scope>
</dependency>
2.application.properties文件添加一下配置
# kafka配置
spring.kafka.appender.bootstrap.servers=localhost:9092
spring.kafka.appender.topic=test
3.修改logback.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="/mnt/logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%method,%line] - %msg%n" />
<!-- kafka 配置 -->
<springProperty scope="context" name="kafka.servers" source="spring.kafka.appender.bootstrap.servers"/>-->
<springProperty scope="context" name="kafka.topic" source="spring.kafka.appender.topic"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%black %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)</pattern>
</encoder>
</appender>
<!-- 日志文件输出 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/logger.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/logger.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 30天 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%black %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)</pattern>
</encoder>
</appender>
<!-- 日志信息发送kafka -->
<appender name="kafkaAppender" class="com.github.danielwegener.logback.kafka.KafkaAppender">
<encoder>
<pattern>
{
"service":"${kafka.servers}",
"date":"%d{yyyy-MM-dd HH:mm:ss}",
"level":"%level",
"thread": "%thread",
"logger": "%logger{36}",
"msg":"%msg"
}
</pattern>
</encoder>
<!-- kafka topic -->
<topic>${kafka.topic}</topic>
<!--<topic>test</topic>-->
<keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy" />
<deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" />
<!-- kafka 地址 -->
<producerConfig>bootstrap.servers=${kafka.servers}</producerConfig>
</appender>
<!-- 异步传递策略,建议选择异步,不然连接kafka失败,会阻挡服务启动 -->
<appender name="Async" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="kafkaAppender" />
</appender>
<!--日志-->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file" />
<appender-ref ref="Async" />
</root>
</configuration>
更多推荐
已为社区贡献1条内容
所有评论(0)