客户端日志用于记录云消息队列 RocketMQ 版客户端运行过程中的异常,帮助您快速定位和修复问题。本文介绍如何为客户端开启日志打印功能、客户端日志的配置项说明以及如何自定义配置客户端日志。
- 推荐您使用最新的RocketMQ 5.x系列SDK,5.x系列SDK作为主力研发版本,和云消息队列 RocketMQ 版5.x服务端完全兼容,提供了更全面的功能并支持更多增强特性。更多信息,请参见5.x系列SDK。
- RocketMQ 4.x/3.x系列SDK和ONS系列SDK后续仅做功能维护,建议仅存量业务使用。
开启客户端日志打印功能
云消息队列 RocketMQ 版的Java SDK基于SLF4J接口编程。
Java SDK 1.7.8.Final及以上版本:默认支持,无需设置
云消息队列 RocketMQ 版的Java SDK 1.7.8.Final已内置了日志实现,您无需在客户端应用中添加日志实现依赖即可打印云消息队列 RocketMQ 版的客户端日志。
针对Java SDK 1.7.8.Final以下版本:添加日志实现依赖
云消息队列 RocketMQ 版的Java SDK 1.7.8.Final以下的旧版本不支持Log4j2,只支持Log4j、Logback。您需要在
pom.xml
配置文件或者lib中添加对应的日志实现依赖来打印云消息队列 RocketMQ 版客户端日志。推荐您使用最新版本的日志。
应用中同时依赖Log4j和Logback的日志实现会造成日志冲突导致客户端日志打印混乱。请确保应用只依赖其中一个日志实现,您可以通过mvn clean dependency:tree | grep log
命令进行排查。
客户端日志配置项
客户端日志的配置项及说明如下表所示。客户端启动后,会按照系统默认配置生成日志文件;您也可以自定义配置项,修改日志参数,具体操作,请参见本文中的自定义配置客户端日志。
配置项 | 系统默认配置 | 是否支持自定义配置 | 配置参数 | 自定义取值 |
日志保存路径 | /{user.home}/logs/ons.log,其中{user.home}是指您启动当前Java进程的根目录。 | 是 |
| 可自定义为您需要将日志文件保存到本地的路径。 请确保您的应用进程有该路径的写权限,否则日志无法打印。 |
日志级别 | INFO | 是 |
| 取值如下:
|
保存历史日志文件的最大个数 | 10个 | 是 |
| 取值范围:1~100。 若设置的值超出该范围或格式错误,则以系统默认值(10个)为准。 |
单个日志文件大小 | 64 MB | 否 | 不涉及 | 不涉及 |
自定义配置客户端日志
若您需要自定义客户端的日志配置,请将Java SDK升级到1.2.5及以上版本。
配置方式:在启动脚本或者IDE的VM options中,通过
-D
命令设置客户端日志配置项。配置示例:
Linux系统配置示例
-Dons.client.logRoot=/home/admin/logs -Dons.client.logLevel=WARN -Dons.client.logFileMaxIndex=20
Windows系统配置示例
-Dons.client.logRoot=D:\logs -Dons.client.logLevel=WARN -Dons.client.logFileMaxIndex=20
其中/home/admin/和D:\仅为示例,请替换为您实际的系统目录。