支持大小限制和rotate的log庫,還是很有必要的,前者讓你不再操心磁盤被吃光,后者讓查日志更方便。
但是在golang中沒有太好的實現,看過一些開源的和自行實現的,都有幾個不滿意的地方,比如:
沒有rotate的,比如glog。
寫的很復雜,並且需要復雜配置的,比如seelog。
把日志先輸送到單個channel,再format寫入磁盤的,沒有充分利用多核多線程。
邏輯寫得很詭異的,存在bug的,文件名異常長的,rotate邏輯寫得不對的,比如github.com/natefinch/lumberjack、github.com/antigloss/go。
不支持不同輸出的。
最后找到siddongtang大神寫的,很簡潔很和諧,我也提交了個pull request。之前一直用他的mysql canal,感覺他寫代碼還是不錯的。
log庫在此:https://github.com/siddontang/go/tree/master/log