使用io.Multiwriter跨包/子包创建日志

时间:2017-07-13 17:35:01

标签: logging go

我是Go的新手。目前,我正在编写一个工具来捕获所有stdout输出,并将它们合并到一个新文件中。

为了做到这一点,我正在使用io.Multiwriter。但是,我的问题在于尝试跨包和子包捕获所有stdout输出。

目前,我的方法是创建一个新的包,它具有所有日志记录的独占作用。每当其中一个包/子包有一些输出字符串时,我会将字符串发送到日志包,然后将多重写入日志和stdout。

听起来合理吗?如果是这样,通用日志包API应该是什么样的?另外,将输出/日志记录的字符串传递给日志记录包的好方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为我会很好地使用已有的记录器软件包。然后从所有包中调用记录器。

您的要求(mutliwriter)是典型的要求。在这里进行图书馆搜索https://golanglibs.com/search?q=logger选择适合您需要的图书馆。

或者从这些软件包中学习并实现您自己的定制版本。