一、日志相關(guān)概念


日志是一種可以追蹤某些軟件運(yùn)行時(shí)所發(fā)生事件的方法。軟件開(kāi)發(fā)人員可以向他們的代碼中調(diào)用日志記錄相關(guān)的方法來(lái)表明發(fā)生了某些事情。一個(gè)事件可以用一個(gè)可包含可選變量數(shù)據(jù)的消息來(lái)描述。此外,事件也有重要性的概念,這個(gè)重要性也可以被稱為嚴(yán)重性級(jí)別(level)。

1.日志的作用

通過(guò)log的分析,可以方便用戶了解系統(tǒng)或軟件、應(yīng)用的運(yùn)行情況;如果你的應(yīng)用log足夠豐富,也可以分析以往用戶的操作行為、類(lèi)型喜好、地域分布或其他更多信息;如果一個(gè)應(yīng)用的log同時(shí)也分了多個(gè)級(jí)別,那么可以很輕易地分析得到該應(yīng)用的健康狀況,及時(shí)發(fā)現(xiàn)問(wèn)題并快速定位、解決問(wèn)題,補(bǔ)救損失。
簡(jiǎn)單來(lái)講就是,我們通過(guò)記錄和分析日志可以了解一個(gè)系統(tǒng)或軟件程序運(yùn)行情況是否正常,也可以在應(yīng)用程序出現(xiàn)故障時(shí)快速定位問(wèn)題。比如,做運(yùn)維的同學(xué),在接收到報(bào)警或各種問(wèn)題反饋后,進(jìn)行問(wèn)題排查時(shí)通常都會(huì)先去看各種日志,大部分問(wèn)題都可以在日志中找到答案。再比如,做開(kāi)發(fā)的同學(xué),可以通過(guò)IDE控制臺(tái)上輸出的各種日志進(jìn)行程序調(diào)試。對(duì)于運(yùn)維老司機(jī)或者有經(jīng)驗(yàn)的開(kāi)發(fā)人員,可以快速的通過(guò)日志定位到問(wèn)題的根源。可見(jiàn),日志的重要性不可小覷。日志的作用可以簡(jiǎn)單總結(jié)為以下3點(diǎn):

  • 程序調(diào)試

  • 了解軟件程序運(yùn)行情況,是否正常

  • 軟件程序運(yùn)行故障分析與問(wèn)題定位

如果應(yīng)用的日志信息足夠詳細(xì)和豐富,還可以用來(lái)做用戶行為分析,如:分析用戶的操作行為、類(lèi)型洗好、地域分布以及其它更多的信息,由此可以實(shí)現(xiàn)改進(jìn)業(yè)務(wù)、提高商業(yè)利益。

2.日志的等級(jí)

我們先來(lái)思考下下面的兩個(gè)問(wèn)題:

  • 作為開(kāi)發(fā)人員,在開(kāi)發(fā)一個(gè)應(yīng)用程序時(shí)需要什么日志信息?在應(yīng)用程序正式上線后需要什么日志信息?

  • 作為應(yīng)用運(yùn)維人員,在部署開(kāi)發(fā)環(huán)境時(shí)需要什么日志信息?在部署生產(chǎn)環(huán)境時(shí)需要什么日志信息?

在軟件開(kāi)發(fā)階段或部署開(kāi)發(fā)環(huán)境時(shí),為了盡可能詳細(xì)的查看應(yīng)用程序的運(yùn)行狀態(tài)來(lái)保證上線后的穩(wěn)定性,我們可能需要把該應(yīng)用程序所有的運(yùn)行日志全部記錄下來(lái)進(jìn)行分析,這是非常耗費(fèi)機(jī)器性能的。當(dāng)應(yīng)用程序正式發(fā)布或在生產(chǎn)環(huán)境部署應(yīng)用程序時(shí),我們通常只需要記錄應(yīng)用程序的異常信息、錯(cuò)誤信息等,這樣既可以減小服務(wù)器的I/O壓力,也可以避免我們?cè)谂挪楣收蠒r(shí)被淹沒(méi)在日志的海洋里。那么,怎樣才能在不改動(dòng)應(yīng)用程序代碼的情況下實(shí)現(xiàn)在不同的環(huán)境記錄不同詳細(xì)程度的日志呢?這就是日志等級(jí)的作用了,我們通過(guò)配置文件指定我們需要的日志等級(jí)就可以了。

不同的應(yīng)用程序所定義的日志等級(jí)可能會(huì)有所差別,分的詳細(xì)點(diǎn)的會(huì)包含以下幾個(gè)等級(jí):

  • DEBUG

  • INFO

  • NOTICE

  • WARNING

  • ERROR

  • CRITICAL

  • ALERT

  • EMERGENCY

3.日志字段信息與日志格式

本節(jié)開(kāi)始問(wèn)題提到過(guò),一條日志信息對(duì)應(yīng)的是一個(gè)事件的發(fā)生,而一個(gè)事件通常需要包括以下幾個(gè)內(nèi)容:

  • 事件發(fā)生時(shí)間

  • 事件發(fā)生位置

  • 事件的嚴(yán)重程度--日志級(jí)別

  • 事件內(nèi)容

網(wǎng)友評(píng)論