1、在springboot启动类添加
System.setProperty(ClientLogger.CLIENT_LOG_USESLF4J,"true");
2、找到项目中的logback-spring.xml文件,可以ctrl+n搜索文件查找文件。,然后追加以下配置。这里需要注意,日志等级需要配置,不然容器那边没法正常打印日志。
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志文件保存路径 -->
<file>/root/logs/rocketmqlogs/rocketmq_client.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>/root/logs/mq/rocketMQclient-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!-- 日志文件最大尺寸 -->
<maxFileSize>300MB</maxFileSize>
<!--日志文件保留天数-->
<MaxHistory>10</MaxHistory>
<totalSizeCap>1GB</totalSizeCap> <!-- 日志总量大小,超过该值旧的日志文件将被清理-->
</rollingPolicy>
<encoder>
<pattern>%level %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%logger{0}] [%X{traceId}] [%msg]%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<logger name="RocketmqClient" additivity="false">
<!-- 这里可以按需配置日志级别 -->
<level value="INFO" />
<appender-ref ref="RocketmqClientAppender"/>
</logger>
3、重新部署应用,验证日志,我应用是k8s部署的,所以找到应用所在的节点,进去应用所在节点服务器,执行
#order为应用包含的名字
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep order
4、然后根据命令查找到的docker文件路径进行查看文件是否正常,我配置的路径是/root/logs/rocketmqlogs/rocketmq_client.log
#diff为项目自己应用自带的路径,如果找不到路径,可以直接进到容器里查找ketmqlogs/rocketmq_client.log 进去查找认证
tail -n 200 /var/lib/docker/overlay2/ffbe1261bae9f62b00d65a61ea54cdeb1cc693d5633ea244ccec8d205745e853/diff/root/logs/rocketmqlogs/rocketmq_client.log