问题介绍
java应用在集成rocketmq客户端的时候,默认的客户端日志是打印在${user}/logs/rocketmqlogs/rocketmq_client.log
,如果需要单独改变打印的路径需要特殊设置。
修改办法
rocketmq-client 4.X.X
该方法在rocketmq-client-4.6.0尝试生效。低版本的rocketmq-client是没有集成日志框架包的,通过开启rocketmq的Slf4j即可集成进现有的日志框架。
启动脚本增加环境变量:
-Drocketmq.client.logUseSlf4j=true
logback.xml增加对应的日志打印:
<!-- 追加一个appender 配置的内容可以自己调整下 -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}/rocketmq_client.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}/rocketmq_client_%d{yyyyMMdd}_%i.log.zip</fileNamePattern>
<maxHistory>366</maxHistory>
<totalSizeCap>10000GB</totalSizeCap>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>200MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<Pattern>${LOG_PATTERN}</Pattern>
</encoder>
</appender>
<!-- 追加一个logger 将rocketmq的日志输出根据RocketmqClientAppender来 -->
<logger name="RocketmqClient" level="INFO" additivity="false">
<appender-ref ref="RocketmqClientAppender"/>
</logger>
rocketmq-client 5.X.X
该方法在rocketmq-client-5.2.0尝试生效。高版本的rocketmq-client将日志框架改个包名集成进来,所以配置方法与之前版本不太一样。
在资源文件路径追加rmq.logback.xml配置文件,配置内容参考如下,可以根据实际情况修改变动:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<conversionRule conversionWord="pid" converterClass="io.github.aliyunmq.logback.extensions.ProcessIdConverter"/>
<property name="APP_NAME" value="app"/>
<property name="LOG_FILE" value="/app/${APP_NAME}"/>
<appender name="CustomConsoleAppender" class="io.github.aliyunmq.logback.extensions.CustomConsoleAppender">
<encoder>
<pattern>%yellow(%d{yyy-MM-dd HH:mm:ss.SSS,GMT+8}) %highlight(%-5p) %boldWhite([%pid]) %magenta([%t]) %boldGreen([%logger{12}#%M:%L]) - %m%n
</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="DefaultAppender" class="org.apache.rocketmq.logging.ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<File>
${LOG_FILE}/rocketmq-client/rocketmq-client.log
</File>
<rollingPolicy class="org.apache.rocketmq.logging.ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_FILE}/rocketmq-client/rocketmq-client-%d{yyyyMMdd}.%i.log.zip
</fileNamePattern>
<maxFileSize>200MB</maxFileSize>
<maxHistory>366</maxHistory>
<totalSizeCap>10000GB</totalSizeCap>
</rollingPolicy>
<encoder class="org.apache.rocketmq.logging.ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyy-MM-dd HH:mm:ss.SSS,GMT+8} %-5p [%t] [%logger{12}#%M:%L] - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<root level="${rocketmq.log.level:-info}">
<appender-ref ref="CustomConsoleAppender"/>
<appender-ref ref="DefaultAppender" additivity="false"/>
</root>
</configuration>
评论