logging - 在 log.SetOutput(ioutil.Discard) 之后延迟 log.SetOutput(os.Stdout)

标签 logging go nsq go-nsq

go-nsq 库 ( https://github.com/bitly/go-nsq/blob/master/writer_test.go#L38 ) 中,我找到了以下代码:

log.SetOutput(ioutil.Discard)
defer log.SetOutput(os.Stdout)

为什么作者在丢弃日志后将日志记录延迟到标准输出?

最佳答案

log.SetOutput(ioutil.Discard) 语句更改标准记录器输出目的地。 defer log.SetOutput(os.Stdout) 语句尝试在函数结束时将输出目标重置回其初始值。但是,它应该已将其重置回 os.Stderr

src/pkg/log/log.go

var std = New(os.Stderr, "", LstdFlags)

关于logging - 在 log.SetOutput(ioutil.Discard) 之后延迟 log.SetOutput(os.Stdout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22131865/

相关文章:

logging - 如何将 PHP 错误写入 stderr?

go - 将图像附加到通过Golang Gmail API发送的电子邮件

Golang 和 NSQ(位)

mysql - 如何将数据库与微服务(以及新服务)同步?

使用指针引用去测试函数

docker - 在 Docker 中运行 NSQ

Python Logging - 禁用导入模块的日志记录

java - 如何自定义 log4j2 RollingFileAppender?

c# - Serilog ThreadId 始终输出为 1

deployment - Golang 应用程序部署