【发布时间】:2014-04-03 14:55:19
【问题描述】:
在go-nsq库(https://github.com/bitly/go-nsq/blob/master/writer_test.go#L38)中,我找到了以下代码:
log.SetOutput(ioutil.Discard)
defer log.SetOutput(os.Stdout)
为什么作者在丢弃日志后推迟到标准输出?
【问题讨论】:
在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。
var std = New(os.Stderr, "", LstdFlags)
【讨论】:
/dev/null 并稍后将其设置回来?在单元测试中记录错误不是一件好事吗?