Posted on 2008-07-18 10:03
Fox 閱讀(2062)
評(píng)論(8) 編輯 收藏 引用 所屬分類(lèi):
T技術(shù)碎語(yǔ)
一個(gè)好的日志系統(tǒng),除了可以記錄盡可能多的必要信息,方便trace bugs、提供data analysis source這些基本功能之外,其他的貌似不必太在意。但真正當(dāng)bugs冒出來(lái)的時(shí)候,要命的是既沒(méi)有dump,也沒(méi)有有價(jià)值的日志,更要命的是日志居然已經(jīng)記錄了那么多,居然讓你查了半天,居然都是沒(méi)有價(jià)值的!
悲劇??!
日志需要記錄的信息大概分為兩類(lèi):
1) 系統(tǒng)運(yùn)行情況:?jiǎn)?dòng)、加載、讀寫(xiě)、關(guān)閉、異常;
2) 用戶使用情況:進(jìn)入、操作、離開(kāi)、異常。
我可以想到的關(guān)于日志系統(tǒng)的要求大致以下幾點(diǎn):
1) 日志系統(tǒng)使用目錄樹(shù)結(jié)構(gòu):系統(tǒng)日志和用戶日志分別記錄,正常日志和異常日志分別記錄,不置于同一文件夾下,日志文件命名做到令觀者一目了然;
2) 記錄詳盡但不冗余:正確記錄日志時(shí)間、位置、事件、因果,有可能的話,記錄上下文(這要求有點(diǎn)高了);
3) 格式統(tǒng)一但嚴(yán)禁千篇一律:格式統(tǒng)一是指記錄內(nèi)容遵循一定格式,方便查看,嚴(yán)禁千篇一律是指記錄要有層次、輕重,不同事件導(dǎo)致的“同一”異常日志不應(yīng)不加區(qū)別,同樣是為了方便查看;
4) 與異常處理相輔相成:有dump時(shí),以日志輔助快速定位,沒(méi)有dump時(shí),日志應(yīng)盡可能提供有效信息,離系統(tǒng)崩潰的地方越近越好(這一點(diǎn)似乎也有難度)。
________________________________________________
突然想到的,也還沒(méi)有動(dòng)手去做,先記下了,歡迎補(bǔ)充。
_____Added on Jul.25th, 2008_______________________
還看到一位兄弟在為我說(shuō)話,謝謝!
今天在考慮實(shí)現(xiàn)時(shí),想到一個(gè)很現(xiàn)實(shí)的問(wèn)題,日志幾乎是無(wú)處不在的,隨時(shí)隨地會(huì)有日志記錄。不知道有誰(shuí)對(duì)I/O(當(dāng)然主要是Output)消耗和對(duì)系統(tǒng)的影響做過(guò)專門(mén)測(cè)試,猜測(cè)就算了:-),我很想知道有沒(méi)有必要放到專門(mén)的線程中,如果放到獨(dú)立線程中的話,問(wèn)題就出來(lái)了,多長(zhǎng)時(shí)間寫(xiě)一次?畢竟,記錄日志的主要目的就是為了全面記錄系統(tǒng)運(yùn)行和用戶使用情況,如果在服務(wù)器crash的時(shí)候,還有日志(尤其是crash上下文日志)沒(méi)有被順利寫(xiě)入,日志的意義也就大打折扣。
誰(shuí)給點(diǎn)建議?