Golang下的Log處理


原創文章轉載請注明出處:@協思,  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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM