有没有什么好的包装可用于基于级别的日志在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 –