|
我開發(fā)了一個Java應用,部署到云環(huán)境上之后,用postman測試發(fā)現(xiàn)不能按照我期望的工作,但是返回的消息對我沒有任何幫助。 因為部署在云端的應用很難像本地Java應用一樣調試,所以我打算用SLF4J在Java代碼里添加一些日志,然后查看該Java應用在云端執(zhí)行產(chǎn)生的日志來排查問題。 SLF4J的全稱是Simple Logging Facade for Java, 即簡單日志門面,這里的Facade實際上是面向對象的設計模式中的外觀模式(Facade pattern)。SLF4J不是具體的日志解決方案,它本身不包含日志記錄的具體實現(xiàn),而是只提供一個外觀給各種各樣的日志系統(tǒng),這樣就給具體應用提供了很大的靈活度,使得最終用戶在部署其應用時可以靈活選用其所希望的日志系統(tǒng)。 SLF4J的使用非常簡單,在您的應用代碼里將SLF4J的Logger和LoggerFactory導入: 然后在引用代碼里用LoggerFactory獲得logger實例: static private Logger logger = LoggerFactory.getLogger(XCDService.class); 然后用logger.info進行日志記錄。 將加了SLF4J日志記錄的代碼重新上傳到云平臺上。我用的是SAP云平臺。 登錄SAP云平臺的控制臺,點擊Logging標簽頁: 點Configure Loggers: 因為我的應用代碼放在com.sap.service包下面,所以我根據(jù)這個包名進行過濾: 將這兩個Logger對應的Log Level日志級別設置成INFO: 再次用postman請求部署在SAP云平臺上的服務,然后去云平臺控制臺上查看生成的日志文件: 點擊查看按鈕即可看到日志的具體內容,一下子就定位出問題的原因了。我在服務器端的HTTP響應頭字段Content-type設置的值為application/json,但是返回的JSON字符串不符合JSON格式規(guī)范。把這個bug改掉之后錯誤就解決了。 要獲取更多Jerry的原創(chuàng)技術文章,請關注公眾號"汪子熙"。
|
|
|