一、日志相關(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)容
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26