有沒有什麼好的包裝可用於基於級別的日誌在golang? 如果不是,我該如何去執行一個自己?如何在golang中實現基於級別的日誌記錄?
我想要的非常簡單。我想要一些功能,例如可顯示其輸出到stdout以及保存這些在日誌文件中
log.Error()
log.Info()
等(基於給定的程序作爲命令行參數的電平)。 如何實現這個包裝?
有沒有什麼好的包裝可用於基於級別的日誌在golang? 如果不是,我該如何去執行一個自己?如何在golang中實現基於級別的日誌記錄?
我想要的非常簡單。我想要一些功能,例如可顯示其輸出到stdout以及保存這些在日誌文件中
log.Error()
log.Info()
等(基於給定的程序作爲命令行參數的電平)。 如何實現這個包裝?
一些更多的建議,現在,現有的答案是很老:
看看http://cgl.tideland.biz,然後看包「applog」。它正在這樣工作。 PS:整個CGL目前正在重新設計,並且很快將會以新功能發佈,但以不同的名稱發佈。 ;)
我認爲seelog適合您的requirements,它似乎很流行,因爲它經常在日誌討論中彈出。我從來沒有認真對待過,所以我不能評論這件事。
它看起來像seelog必須獲取/釋放每個語句的全局鎖。 –
stdlog完全適合您的要求:
log := stdlog.GetFromFlags()
log.Info("Connecting to the server...")
log.Errorf("Connection failed: %q", err)
Uber-go/Zap:快速,層次分明,在圍棋
https://github.com/hashicorp/logutils我發現這是非常容易使用拉平記錄,而你沒有甚至需要更改std庫的方法調用log.Printf
。
我現在正在與rlog一起工作,就像他們的做法一樣。代碼看起來不錯,簡單並且有足夠的文檔。
什麼使我確信:
rlog.Info()
沒有繞過引用rlog.Trace(4, "foo")
我已經爲內置的Go日誌包添加了日誌級支持。你可以在這裏找到我的代碼:
https://github.com/gologme/log
除了增加了信息支持,警告和調試,用戶也可以自己定義的任意日誌記錄級別。日誌記錄級別分別啓用和禁用。這意味着您可以打開調試日誌而不需要其他任何東西。
https://github.com/jcelliott/lumber – elithrar
@elithrar謝謝! – pymd
@elithrar,謝謝,它很簡單,powerfool –