2013-06-03 102 views
27

有沒有什麼好的包裝可用於基於級別的日誌在golang? 如果不是,我該如何去執行一個自己?如何在golang中實現基於級別的日誌記錄?

我想要的非常簡單。我想要一些功能,例如可顯示其輸出到stdout以及保存這些在日誌文件中

log.Error() 
log.Info() 

等(基於給定的程序作爲命令行參數的電平)。 如何實現這個包裝?

+2

https://github.com/jcelliott/lumber – elithrar

+0

@elithrar謝謝! – pymd

+0

@elithrar,謝謝,它很簡單,powerfool –

回答

3

看看http://cgl.tideland.biz,然後看包「applog」。它正在這樣工作。 PS:整個CGL目前正在重新設計,並且很快將會以新功能發佈,但以不同的名稱發佈。 ;)

+0

非常感謝您的幫助! – pymd

+0

不幸的是,鏈接已經死了 –

+0

所有的鏈接已經死亡或沒有任何與日誌記錄。 – neurosnap

4

我認爲seelog適合您的requirements,它似乎很流行,因爲它經常在日誌討論中彈出。我從來沒有認真對待過,所以我不能評論這件事。

+0

它看起來像seelog必須獲取/釋放每個語句的全局鎖。 –

2

stdlog完全適合您的要求:

log := stdlog.GetFromFlags() 
log.Info("Connecting to the server...") 
log.Errorf("Connection failed: %q", err) 
0

我現在正在與rlog一起工作,就像他們的做法一樣。代碼看起來不錯,簡單並且有足夠的文檔。

什麼使我確信:

  • 沒有外部依賴
  • 我可以在任何地方使用rlog.Info()沒有繞過引用
  • 良好環境變量的使用
  • 痕量水平的任意數例如rlog.Trace(4, "foo")
0

我已經爲內置的Go日誌包添加了日誌級支持。你可以在這裏找到我的代碼:

https://github.com/gologme/log

除了增加了信息支持,警告和調試,用戶也可以自己定義的任意日誌記錄級別。日誌記錄級別分別啓用和禁用。這意味着您可以打開調試日誌而不需要其他任何東西。

相關問題