Paho Java Client日誌調試(mqtt)

參考官網:https://wiki.eclipse.org/Paho/Log_and_Debug_in_the_Java_client

使用paho的包併發發送MQTT消息時總是報錯,於是想打開日誌調試。

1. 首先在項目裏新建一個日誌配置文件jsr47min.properties

org.eclipse.paho.client.mqttv3.handlers=java.util.logging.MemoryHandler
org.eclipse.paho.client.mqttv3.level=ALL
# It is possible to set more granular trace on a per class basis e.g.
#org.eclipse.paho.client.mqttv3.internal.ClientComms.level=ALL

java.util.logging.MemoryHandler.level=ALL
java.util.logging.MemoryHandler.size=10000
java.util.logging.MemoryHandler.push=ALL
java.util.logging.MemoryHandler.target=java.util.logging.FileHandler
#java.util.logging.MemoryHandler.target=java.util.logging.ConsoleHandler

java.util.logging.FileHandler.level=ALL

# Naming style for the output file:
# (The output file is placed in the directory
# defined by the "user.home" System property.)
# See java.util.logging for more options 
java.util.logging.FileHandler.pattern=%h/paho%u.log

# Limiting size of output file in bytes:
java.util.logging.FileHandler.limit=200000

# Number of output files to cycle through, by appending an
# integer to the base file name:
java.util.logging.FileHandler.count=1000

# Style of output (Simple or XML):
java.util.logging.FileHandler.formatter=org.eclipse.paho.client.mqttv3.logging.SimpleLogFormatter

由於併發,日誌量較大,很容易錯過日誌,所以我將保留文件改爲了1000個
輸出日誌級別爲ALL

2. 啓動時指定日誌配置文件路徑

如果是普通的java程序,則在啓動時加上-Djava.util.logging.config.file=[jsr47min.properties的路徑]即可。
我的程序是運行在tomcat上,故此處介紹下tomcat如何配置這個參數。

  • windows下eclipse配置方式:

(1) 在eclipse中打開tomcat並點擊配置
這裏寫圖片描述
(2)在VM arguments里加入-Djava.util.logging.config.file=[jsr47min.properties的路徑]
這裏寫圖片描述
(3)然後直接在eclipse中啓動tomcat即可。

  • linux下tomcat配置方式

    啓動tomcat是用tomcat路徑下的bin/startup.sh,實際這個腳本是在調用catalina.sh。
    觀察catalina.sh,裏面有介紹如何配置java.util.logging.config.file
    這裏寫圖片描述
    而默認的配置是這樣的
    這裏寫圖片描述
    這個LOGGING_MANAGER也會影響到我們接下來要配置的日誌打印
    所以我們要在在setenv.sh中添加如下配置:

LOGGING_CONFIG="-Djava.util.logging.config.file=[jsr47min.properties的路徑]"
LOGGING_MANAGER=""

配置好後通過startup.sh啓動即可。

3. 查看日誌文件

根據配置文件上的配置java.util.logging.FileHandler.pattern=%h/paho%u.log
日誌文件默認會用用戶home目錄下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章