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


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

1.日志的作用

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

  • 程序調(diào)試

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

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

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

2.日志的等級

我們先來思考下下面的兩個問題:

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

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

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

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

  • DEBUG

  • INFO

  • NOTICE

  • WARNING

  • ERROR

  • CRITICAL

  • ALERT

  • EMERGENCY

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

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

  • 事件發(fā)生時間

  • 事件發(fā)生位置

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

  • 事件內(nèi)容

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式