日志配置
客戶端日志用於記錄客戶端運行過程中的異常,幫助快速定位和修復問題。本文介紹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:\ 僅為示例,請填寫您實際的系統目錄。
原文鏈接【阿里雲】