日志配置

客户端日志用于记录云消息队列 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进程的根目录。

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