客户端日志用于记录消息队列RocketMQ版客户端运行过程中的异常,帮助您快速定位和修复问题。本文介绍如何为客户端开启日志打印功能、客户端日志的配置项说明以及如何自定义配置客户端日志。

开启客户端日志打印功能

消息队列RocketMQ版的TCP 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进程的根目录。 ons.client.logRoot

可自定义为您需要将日志文件保存到本地的路径。

请确保您的应用进程有该路径的写权限,否则日志无法打印。

日志级别 INFO ons.client.logLevel 取值如下:
  • ERROR
  • WARN
  • INFO
  • DEBUG
保存历史日志文件的最大个数 10个 ons.client.logFileMaxIndex

取值范围: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:\仅为示例,请替换为您实际的系统目录。