rocketMq 客户端日志调整存储位置

日志配置

客户端日志用于记录客户端运行过程中的异常,帮助快速定位和修复问题。本文介绍RocketMQ的客户端日志的打印方式,以及默认和自定义配置。

打印客户端日志

RocketMQ的TCP Java SDK基于SLF4J接口编程。

  • 针对Java SDK 1.7.8.Final版本及以上

    RocketMQ的Java SDK 1.7.8.Final已内置了日志实现,您无需在客户端应用中添加日志实现依赖即可打印RocketMQ客户端日志。

    RocketMQ客户端日志的默认配置和如何修改默认配置,请参见下文的自定义日志配置部分。

  • 针对Java SDK 1.7.8.Final以下

    RocketMQ的Java SDK 1.7.8.Final以下的旧版本不支持log4j2,只支持log4j、logback。您需要在pom.xml配置文件 或者lib中添加对应的日志实现依赖来打印RocketMQ客户端日志。

    依赖log4j或logback作为日志实现的示例代码如下所示。

    • 方式一:依赖log4j作为日志实现

       
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.7.7</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.7.7</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
    • 方式二:依赖logback作为日志实现

       
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
          <version>1.1.2</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
      <version>1.1.2</version>
      </dependency>
       
      说明

      应用中同时依赖log4j和logback的日志实现会造成日志冲突导致客户端日志打印混乱。确保应用只依赖其中一个日志实现,是正确打印RocketMQ客户端日志的前提条件,建议通过mvn clean dependency:tree | grep log命令排查。

客户端日志配置

RocketMQ 客户端支持自定义日志保存路径日志级别以及保存历史日志文件的最大个数。考虑到日志传输以及阅读的便利性,暂不允许自定义单个日志文件大小,仍保持默认的64 MB。

各参数的配置说明如下:

参数 说明
日志保存路径 请确保应用进程有对该路径写的权限,否则日志不会打印。
保存历史日志文件的最大个数 支持1到100之前的数值;若输入的值超出该范围或格式错误,则系统默认保存10个。
日志级别 支持ERROR、WARN、INFO、DEBUG中任何一种,不匹配默认INFO。
  • 默认配置

    RocketMQ客户端启动后,会按照如下的默认配置生成日志文件:

    • 日志保存路径:/{user.home}/logs/ons.log,其中{user.home}是指启动当前Java进程的用户的根目录

    • 保存历史日志文件的最大个数:10个

    • 日志级别:INFO

    • 单个日志文件大小:64 MB

  • 自定义配置

     
    说明

    若要自定义RocketMQ客户端的日志配置,请升级到Java SDK 1.2.5版本及以上。

    在Java SDK中自定义RocketMQ客户端日志配置,请设置如下系统参数:

    • ons.client.logRoot:日志保存路径
    • ons.client.logFileMaxIndex:保存历史日志文件的最大个数
    • ons.client.logLevel:日志级别

    示例

    您可在启动脚本中或者IDE的VM options中添加如下系统参数:

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

 

原文链接【阿里云

posted @ 2022-01-03 19:33  linkanyway  阅读(3812)  评论(0编辑  收藏  举报