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

我開發了一個Java應用,部署到雲環境上以後,用postman測試發現不能按照我指望的工做,可是返回的消息對我沒有任何幫助。java

由於部署在雲端的應用很難像本地Java應用同樣調試,因此我打算用SLF4J在Java代碼裏添加一些日誌,而後查看該Java應用在雲端執行產生的日誌來排查問題。json

SLF4J的全稱是Simple Logging Facade for Java, 即簡單日誌門面,這裏的Facade其實是面向對象的設計模式中的外觀模式(Facade pattern)。SLF4J不是具體的日誌解決方案,它自己不包含日誌記錄的具體實現,而是隻提供一個外觀給各類各樣的日誌系統,這樣就給具體應用提供了很大的靈活度,使得最終用戶在部署其應用時能夠靈活選用其所但願的日誌系統。設計模式

SLF4J的使用很是簡單,在您的應用代碼裏將SLF4J的Logger和LoggerFactory導入:服務器

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

而後在引用代碼裏用LoggerFactory得到logger實例:app

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

而後用logger.info進行日誌記錄。測試

將加了SLF4J日誌記錄的代碼從新上傳到雲平臺上。我用的是SAP雲平臺。設計

登陸SAP雲平臺的控制檯,點擊Logging標籤頁:調試

點Configure Loggers:日誌

由於個人應用代碼放在com.sap.service包下面,因此我根據這個包名進行過濾:

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

再次用postman請求部署在SAP雲平臺上的服務,而後去雲平臺控制檯上查看生成的日誌文件:

點擊查看按鈕便可看到日誌的具體內容,一會兒就定位出問題的緣由了。我在服務器端的HTTP響應頭字段Content-type設置的值爲application/json,可是返回的JSON字符串不符合JSON格式規範。把這個bug改掉以後錯誤就解決了。

要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索