原創文章轉載請注明出處:@協思,
http://zeeman.cnblogs.com
后端系統中的Log是相當重要的,做過高並發服務的同學都會認同這一點。相對而言,調試已經用處不大了,對於這樣的項目,我現在也習慣了這種開發方式,有兩個原因:
1.debug只能在開發環境,到產線環境就不靈了。
2.在並行計算下,debug可能無法發現潛在的問題。
有了以前做node.js的經驗,放棄debug沒有想象中那么可怕,只要我們程序設計合理,結構清晰,日志完整,看到異常信息后基本都可以快速定位問題所在。
做Java的時候有log4j,做.NET程序的時候有log4net, 做Node.js的時候有log4js....上述幾個模塊用了都不錯,因此做Go項目自然選擇了Log4go。
話說這個log4go並不完善,而且兩年沒維護了,白瞎了這么好的名字。比較嚴重的是程序退出可能有日志沒有flush到磁盤上:
1 func main(){ 2 log.Debug("....") 3 defer log.Close() 4 }
程序執行后是沒有log的,這個問題兩年了還沒解決,參見:
使用開源項目我是比較看重活躍度的,本想自己寫一個模塊來解決,后來找到了seelog,試用了一下,還不錯,並且各薦配置和習慣和log4x還比較統一。
seelog源碼地址:
https://github.com/cihub/seelog
seelog支持在console中輸出日志時自定義不同的顏色,但是使用ANSI color,在windows cmd下顯示亂碼,解決方式是安裝一個插件:
解壓后需要注入:
ansicon.exe -i