全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息队列 MQ

日志配置

更新时间:2017-12-15 20:41:34

本文档主要介绍 MQ 客户端日志的正常打印方式,MQ 客户端日志格式解析以及如何自定义 MQ 客户端日志配置。

打印 MQ 客户端日志

MQ 客户端日志在问题定位排查中扮演着非常重要的角色,通过日志记录客户端运行过程中的异常,能够帮助尽可能真实的还原某个时间点的异常场景,最终达到快速定位、修复 Bug 的目的。

TCP Java SDK 打印 MQ 客户端日志

MQ 的 TCP Java SDK 基于 SLF4J 接口编程,客户端日志的打印依赖用户在配置文件中指定的日志实现。目前支持 log4j(暂不支持 log4j2)、logback,可在 pom.xml 或者 lib 中添加对应的日志实现依赖即可:

方式一:依赖 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 的日志实现会造成日志冲突导致客户端日志打印混乱。确保应用只依赖其中一个日志实现,是正确打印 MQ 客户端日志的前提条件,建议通过 mvn clean dependency:tree | grep log 命令排查。

MQ 客户端日志默认配置

在应用中添加了唯一的日志实现后启动 MQ 客户端,MQ 客户端将会按照如下的配置生成日志文件:

  • 日志保存路径:/{user.home}/logs/ons.log,其中{user.home}是指启动当前 Java 进程的用户的根目录
  • 单个日志文件大小:64MB
  • 保存历史日志文件的最大个数:10个
  • 日志级别:INFO

自定义日志配置

MQ 客户端支持用户自定义日志保存路径日志级别以及保存历史日志文件的最大个数;考虑到日志传输以及阅读的便利性,暂不允许自定义单个日志文件大小,仍保持默认64MB;可通过配置保存历史日志文件的最大个数来自定义日志文件保存的时间范围。

各个参数配置说明如下:

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

TCP Java SDK 自定义 MQ 客户端日志

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

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

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

举例说明,可在启动脚本中或者 IDE 的 VM options 中添加如下系统参数:

-Dons.client.logRoot=/home/admin/logs -Dons.client.logLevel=WARN -Dons.client.logFileMaxIndex=20
本文导读目录