项目集成rocketMQ后,日志持续增大,导致磁盘空间逐渐减少,参考官方文档 来正确配置。
打印客户端日志
RocketMQ 的 TCP Java SDK 基于 SLF4J 接口编程。
- JavaSDK1.7.8.Final 版本及以上
RocketMQ 的 Java SDK 1.7.8.Final 已内置了日志实现,无需在客户端应用中添加日志实现依赖 即可打印 RocketMQ 客户端日志。 RocketMQ客户端日志的默认配置和如何修改默认配置。
客户端日志配置
RocketMQ 客户端支持自定义日志保存路径、日志级别以及保存历史日志文件的最大个数。考虑到日志传输以及阅读的便利性,暂不允许自定义单个日志文件大小,仍保持默认的64 MB。各参数的配置说明如下:
参数 | 说明 | 配置参数 | 自定义取值 |
---|---|---|---|
日志保存路径 | 请确保应用进程有对该路径写的权限,否则日志 不会打印。 | rocketmq.client.logRoot | 可自定义为您需要将日志文件保存到本地的路径。请确保您的应用进程有该路径的写权限,否则日志无法打印。 |
保存历史日志文件的最大个数 | 支持1到100之前的数值;若输入的值超出该范围 或格式错误,则系统默认保存10个。 | rocketmq.client.logFileMaxIndex | 取值范围:1~100。若设置的值超出该范围或格式错误,则以系统默认值(10个)为准。 |
日志级别 | 支持ERROR、WARN、INFO、DEBUG中任何一 种,不匹配默认INFO。 | rocketmq.client.logLevel | 取值如下:ERRORWARNINFODEBUG |
单个文件日志大小 | 支持以bytes为单位指定 | rocketmq.client.logFileMaxSize | 取值在0~1GB, 默认1GB, 建议64 MB |
logback是否使用父级logger打印 | children-logger是否使用 rootLogger配置的appender进行输出 | rocketmq.client.log.additive | true/false |
使用项目的slf4j实现记录日志 | 如果需要实现记录日志 则为true | rocketmq.client.logUseSlf4j | true/flase |
默认配置
请确保应用进程有对该路径写的权限,否则日志 不会打印。 支持 1 到 100 之前的数值;若输入的值超出该范围 或格式错误,则系统默认保存10个。 支持 ERROR、WARN、INFO、DEBUG 中任何一 种,不匹配默认 INFO。
RocketMQ 客户端启动后,会按照如下的默认配置生成日志文件 :
- 日志保存路径:/{user.home}/logs/rocketmqlogs/ 其中{user.home}是指启动当前Java进程的用 户的根目录
- 保存历史日志文件的最大个数:10个
- 日志级别:INFO
- 单个日志文件大小: 1GB
添加启动参数
#JAVA_OPTS方式
java -Drocketmq.client.logUseSlf4j=true -Drocketmq.client.logRoot=D:\logs -Drocketmq.client.logLevel=WARN -Drocketmq.client.logFileMaxIndex=20 -Drocketmq.client.logFileMaxSize=67108864 -jar spring-demo.jar
JavaSDK1.7.8.Final 以下
RocketMQ 的Java SDK 1.7.8.Final 以下的旧版本不支持 log4j2,只支持 log4j、logback。您需要 在 pom.xml 配置文件 或者 lib 中添加对应的日志实现依赖来打印 RocketMQ 客户端日志。
官方文档-完整日志配置