在go-nsq
库(https://github.com/bitly/go-nsq/blob/master/writer_test.go#L38)中,我找到了以下代码:
log.SetOutput(ioutil.Discard)
defer log.SetOutput(os.Stdout)
为什么作者在丢弃日志后会将日志记录推迟到stdout?
答案 0 :(得分:1)
log.SetOutput(ioutil.Discard)
语句更改标准记录器输出目标。当函数结束时,defer log.SetOutput(os.Stdout)
语句尝试将输出目标重置为其初始值。但是,它应该将其重置为os.Stderr
。
var std = New(os.Stderr, "", LstdFlags)