2013-06-03 55 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

除了增加了信息支持,警告和调试,用户也可以自己定义的任意日志记录级别。日志记录级别分别启用和禁用。这意味着您可以打开调试日志而不需要其他任何东西。

相关问题