在雲環境上使用SLF4J對Java程式進行日誌記錄

i042416發表於2018-09-11

我開發了一個Java應用,部署到雲環境上之後,用postman測試發現不能按照我期望的工作,但是返回的訊息對我沒有任何幫助。

在雲環境上使用SLF4J對Java程式進行日誌記錄

因為部署在雲端的應用很難像本地Java應用一樣除錯,所以我打算用SLF4J在Java程式碼裡新增一些日誌,然後檢視該Java應用在雲端執行產生的日誌來排查問題。

SLF4J的全稱是Simple Logging Facade for Java, 即簡單日誌門面,這裡的Facade實際上是物件導向的設計模式中的外觀模式(Facade pattern)。SLF4J不是具體的日誌解決方案,它本身不包含日誌記錄的具體實現,而是隻提供一個外觀給各種各樣的日誌系統,這樣就給具體應用提供了很大的靈活度,使得終端使用者在部署其應用時可以靈活選用其所希望的日誌系統。

SLF4J的使用非常簡單,在您的應用程式碼裡將SLF4J的Logger和LoggerFactory匯入:

import org.slf4j.Logger;import org.slf4j.LoggerFactory;

然後在引用程式碼裡用LoggerFactory獲得logger例項:

static private Logger logger = LoggerFactory.getLogger(XCDService.class);

在雲環境上使用SLF4J對Java程式進行日誌記錄

然後用logger.info進行日誌記錄。

將加了SLF4J日誌記錄的程式碼重新上傳到雲平臺上。我用的是SAP雲平臺。

登入SAP雲平臺的控制檯,點選Logging標籤頁:

在雲環境上使用SLF4J對Java程式進行日誌記錄

點Configure Loggers:

在雲環境上使用SLF4J對Java程式進行日誌記錄

因為我的應用程式碼放在com.sap.service包下面,所以我根據這個包名進行過濾:

在雲環境上使用SLF4J對Java程式進行日誌記錄

將這兩個Logger對應的Log Level日誌級別設定成INFO:

在雲環境上使用SLF4J對Java程式進行日誌記錄

再次用postman請求部署在SAP雲平臺上的服務,然後去雲平臺控制檯上檢視生成的日誌檔案:

在雲環境上使用SLF4J對Java程式進行日誌記錄

在雲環境上使用SLF4J對Java程式進行日誌記錄

點選檢視按鈕即可看到日誌的具體內容,一下子就定位出問題的原因了。我在伺服器端的HTTP響應頭欄位Content-type設定的值為application/json,但是返回的JSON字串不符合JSON格式規範。把這個bug改掉之後錯誤就解決了。

在雲環境上使用SLF4J對Java程式進行日誌記錄

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2213993/,如需轉載,請註明出處,否則將追究法律責任。

相關文章