禁用 Go 中的默认 Logger
许多 Go 应用程序都使用 log 包进行日志记录。默认情况下,标准记录器写入标准输出,有时可能很详细。当需要禁用日志记录时,可以考虑几种方法。
一种选择是在进行日志调用之前手动检查标志或在生产中将其注释掉。然而,禁用日志记录的一种更优雅、更有效的方法是重定向记录器的输出。
使用 io/ioutil.Discard
在 Go 1.16 之前,一种方法禁用日志记录涉及创建一个丢弃输出的自定义 io.Writer 类型。这可以通过定义一个实现 Write 方法并使其丢弃数据的结构来实现:
type discardWriter struct{} func (w discardWriter) Write(p []byte) (n int, err error) { return len(p), nil }
然后您可以使用此自定义编写器重定向记录器的输出:
import ( "log" "io/ioutil" ) func init() { log.SetOutput(ioutil.Discard) }
通过此设置,记录器将显示为写入标准输出,但输出将默默地进行
使用 io.Discard (Go 1.16 )
在 Go 1.16 及更高版本中,提供了更简单的方法。 io/ioutil 包提供了一个 Discard writer,它会丢弃写入其中的所有数据。您可以直接使用它,如下所示:
log.SetOutput(io.Discard)
这将完全禁用标准记录器的日志记录。
以上是如何禁用 Go 应用程序中的日志记录?的详细内容。更多信息请关注PHP中文网其他相关文章!