客户端日志用于记录客户端运行过程中的异常,帮助快速定位和修复问题。本文介绍 SOFAStack 消息队列的客户端日志的打印方式,以及默认和自定义配置。
打印客户端日志
消息队列的 TCP Java SDK 基于 SLF4J 接口编程。
依赖 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 的日志实现会造成日志冲突导致客户端日志打印混乱。确保应用只依赖其中一个日志实现,是正确打印客户端日志的前提条件。建议通过 mvn clean dependency:tree | grep log
命令排查。
客户端日志配置
消息队列的客户端支持用户自定义日志保存路径、日志级别以及保存历史日志文件的最大个数。考虑到日志传输以及阅读的便利性,消息队列暂不允许自定义单个日志文件大小,保持默认的 64 MB。
各参数的配置说明如下:
日志保存路径:请确保应用进程有对该路径写的权限,否则日志不会打印。
保存历史日志文件的最大个数:支持 1 到 100 之前的数值;若输入的值超出该范围或格式错误,则系统默认保存 10 个。
日志级别:支持 ERROR、WARN、INFO、DEBUG 中任何一种,不配置则默认为 INFO。
默认配置
客户端启动后,会按照如下的默认配置生成日志文件:
日志保存路径:/{user.home}/logs/sofamq.log,其中 {user.home} 是指启动当前 Java 进程的用户的根目录
保存历史日志文件的最大个数:10 个
日志级别:INFO
单个日志文件大小:64 MB
自定义配置
若要自定义客户端的日志配置,请升级到 Java SDK 1.2.5 及以上版本。
在 Java SDK 中自定义客户端日志配置,请设置以下系统参数:
sofamq.client.logRoot
:日志保存路径sofamq.client.logFileMaxIndex
:保存历史日志文件的最大个数sofamq.client.logLevel
:日志级别
示例配置
您可在启动脚本中或者 IDE 的 VM options 中添加如下系统参数:
Linux 示例
-Dsofamq.client.logRoot=/home/admin/logs -Dsofamq.client.logLevel=WARN -Dsofamq.client.logFileMaxIndex=20
Windows 示例
-Dsofamq.client.logRoot=D:\logs -Dsofamq.client.logLevel=WARN -Dsofamq.client.logFileMaxIndex=20
其中,
/home/admin/
和D:\
仅为示例,请填写您实际的系统目录。
- 本页导读 (0)