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