写在最前面:在预计充分的情况下,建议使用kafka来收集日志
log4j2以及log4j在当前实测整合logappender都不能使用,这个目前是一个bug,有兴趣的参见:详细描述
logback+logappender的使用
导入logappender依赖,logback为当前springboot默认使用的日志框架
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-logappender</artifactId>
</dependency>
项目的配置文件下建立一个配置文件命名为logback.xml(或者logback-spring.xml)
正常情况下启动时会按照文件名自动装载logback配置文件,如果没有找到在application.properties中配置一下
logging.config=classpath:logback.xml
logback配置文件内容
<?xml version="1.0" encoding="UTF-8"?>
<!--DEBUG,INFO,WARN,ERROR,FATAL-->
<configuration>
<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level %c [%L] -|: %msg%n"/>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>
<appender name="mqAppender1" class="org.apache.rocketmq.logappender.logback.RocketmqLogbackAppender">
<tag>TagA</tag>
<topic>LogTopic</topic>
<producerGroup>test_group</producerGroup>
<nameServerAddress>xxx.xxx.xxx.xxx:9876</nameServerAddress>
<layout>
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<!--<appender name="mqAsyncAppender1" class="ch.qos.logback.classic.AsyncAppender">-->
<!--<queueSize>1024</queueSize>-->
<!--<discardingThreshold>80</discardingThreshold>-->
<!--<maxFlushTime>2000</maxFlushTime>-->
<!--<neverBlock>true</neverBlock>-->
<!--<appender-ref ref="mqAppender1"/>-->
<!--</appender>-->
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="mqAppender1"/>
</root>
</configuration>