全局记录(跨包)

我现在花了很多时间搜索和阅读关于这个主题的帖子,但我注意到我的问题还没有完全得到解答——或者我只是需要对现有答案进行更多的澄清。

我已经阅读了这篇与我的标题相同的帖子,但它是关于跨 go 例程而不是包进行日志记录的。

我试图解决的是记录主应用程序及其使用的任何包。我需要一个可以记录到多个位置的记录器(可以使用 io.MultiWriter 完成)并且可以执行 log.Error() 和 log.Debug() 之类的操作

我知道有一些软件包可以做到这一点,而且我知道如何自己实现这些东西。

我无法理解的是如何在我的包裹中正确使用它。

一种方法当然是在 main 中创建记录器,然后将其传递给所有需要记录的函数。但是好像很别扭。

我的理想解决方案是拥有一个类似于日志包中的内置全局记录器的记录器,但具有上述附加功能。

我主要希望它用于包内的可选调试日志记录,因此如果需要,我可以在生产版本中打开它。

这样做的正确方法是什么?


ABOUTYOU
浏览 214回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go