本篇內(nèi)容介紹了“Java日志處理的方法有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
富裕網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,富裕網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為富裕數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的富裕做網(wǎng)站的公司定做!
日志處理
1. 【強(qiáng)制】應(yīng)用中不可直接使用日志系統(tǒng) (Log 4 j 、 Logback) 中的 API ,而應(yīng)依賴使用日志框架SLF 4 J 中的 API ,使用門(mén)面模式的日志框架,有利于維護(hù)和各個(gè)類的日志處理方式統(tǒng)一。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(Abc.class);
2. 【強(qiáng)制】日志文件推薦至少保存 15 天,因?yàn)橛行┊惓>邆湟浴爸堋睘轭l次發(fā)生的特點(diǎn)。
3. 【強(qiáng)制】應(yīng)用中的擴(kuò)展日志 ( 如打點(diǎn)、臨時(shí)監(jiān)控、訪問(wèn)日志等 ) 命名方式:
appName _ logType _ logName . log 。 logType :日志類型,推薦分類有
stats / desc / monitor / visit 等 ;logName :日志描述。這種命名的好處:通過(guò)文件名就可知道日志文件屬于什么應(yīng)用,什么類型,什么目的,也有利于歸類查找。
正例: mppserver 應(yīng)用中單獨(dú)監(jiān)控時(shí)區(qū)轉(zhuǎn)換異常,如:
mppserver _ monitor _ timeZoneConvert . log
說(shuō)明:推薦對(duì)日志進(jìn)行分類,如將錯(cuò)誤日志和業(yè)務(wù)日志分開(kāi)存放,便于開(kāi)發(fā)人員查看,也便于通過(guò)日志對(duì)系統(tǒng)進(jìn)行及時(shí)監(jiān)控。
4. 【強(qiáng)制】對(duì) trace / debug / info 級(jí)別的日志輸出,必須使用條件輸出形式或者使用占位符的方式。
說(shuō)明: logger . debug( " Processing trade with id : " + id + " and symbol : " + symbol);如果日志級(jí)別是 warn ,上述日志不會(huì)打印,但是會(huì)執(zhí)行字符串拼接操作,如果 symbol 是對(duì)象,會(huì)執(zhí)行 toString() 方法,浪費(fèi)了系統(tǒng)資源,執(zhí)行了上述操作,最終日志卻沒(méi)有打印。
正例: ( 條件 )
if (logger.isDebugEnabled()) {
logger.debug("Processing trade with id: " + id + " and symbol: " + symbol);
}
正例: ( 占位符 )
logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);
5. 【強(qiáng)制】避免重復(fù)打印日志,浪費(fèi)磁盤(pán)空間,務(wù)必在 log 4 j . xml 中設(shè)置 additivity = false 。
正例:
6. 【強(qiáng)制】異常信息應(yīng)該包括兩類信息:案發(fā)現(xiàn)場(chǎng)信息和異常堆棧信息。如果不處理,那么通過(guò)關(guān)鍵字 throws 往上拋出。
正例: logger.error(各類參數(shù)或者對(duì)象 toString + "_" + e.getMessage(), e);
7. 【推薦】謹(jǐn)慎地記錄日志。生產(chǎn)環(huán)境禁止輸出 debug 日志 ; 有選擇地輸出 info 日志 ; 如果使用 warn 來(lái)記錄剛上線時(shí)的業(yè)務(wù)行為信息,一定要注意日志輸出量的問(wèn)題,避免把服務(wù)器磁盤(pán)撐爆,并記得及時(shí)刪除這些觀察日志。
說(shuō)明:大量地輸出無(wú)效日志,不利于系統(tǒng)性能提升,也不利于快速定位錯(cuò)誤點(diǎn)。記錄日志時(shí)請(qǐng)思考:這些日志真的有人看嗎?看到這條日志你能做什么?能不能給問(wèn)題排查帶來(lái)好處?
8. 【參考】可以使用 warn 日志級(jí)別來(lái)記錄用戶輸入?yún)?shù)錯(cuò)誤的情況,避免用戶投訴時(shí),無(wú)所適從。注意日志輸出的級(jí)別, error 級(jí)別只記錄系統(tǒng)邏輯出錯(cuò)、異常等重要的錯(cuò)誤信息。如非必要,請(qǐng)不要在此場(chǎng)景打出 error 級(jí)別。
“Java日志處理的方法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!