一个简单的日志记录接口用于 Go
Logger 类型是为应用程序和库作者设计的。 它提供了一个相对较小的 API,可用于任何您想要发布日志的地方。 它将实际的日志写入操作(到文件、到标准输出或其他地方)延迟到 LogSink 接口。LogSink 接口是为日志记录库实现者而设计的。它是一个纯接口,可以由日志记录框架实现,以提供实际的日志记录功能。这种解耦使应用程序和库开发者可以使用 logr.Logger 来编写代码(其依赖性扩散非常小),而日志记录的实现则由“向上堆栈”管理(例如在 main() 中或附近)。应用程序开发者可以根据需要切换实现。
许多人声称库不应该记录日志,因此这种努力是毫无意义的。 这些人可以努力说服那些编写日志的数万个库的作者,让他们相信自己是错误的。 与此同时,logr采取了更实际的方法。
大多数应用程序会调用其他库,创建结构来控制流程等。logr.Logger对象可以传递给这些其他库,存储在结构中,甚至可以作为包级全局变量使用,如果需要。例如:
暂无开放 Issues,或尚未同步最近议题。