电竞比分网-中国电竞赛事及体育赛事平台

分享

在云環(huán)境上使用SLF4J對Java程序進行日志記錄

 汪子熙 2019-03-19

我開發(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導入:

import org.slf4j.Logger;import org.slf4j.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)技術文章,請關注公眾號"汪子熙"。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多