当在 Go 中使用内置的 http 模块时,我注意到 http.ListenAndServe()
默认情况下会对 stdout
进行日志记录调用。我的终端中显示的主要内容是:
http: TLS handshake error from x.x.x.x:x: tls: client offered an unsupported, maximum protocol version of 301.
现在我明白这个错误是什么以及导致它的原因,但事实是,我并不特别关心。
如何阻止 http 包(或 ListenAndServe()
等)默认记录到 stdout?它堵塞了我漂亮的控制台。我 95% 确信我不是记录消息的人,因为我设置的所有日志都带有“INFO”、“WARNING”等前缀。
最佳答案
它不会记录到标准输出,它会记录到http服务器的ErrorLog
(如果已设置),否则记录到标准记录器( log 中的非方法函数使用的记录器) 。如果您已经有一个记录器,请使用该记录器构建一个 http.Server
作为其 ErrorLog
并对其调用 ListenAndServe
。否则,请使用 log.SetOutput
更改标准日志的目标。
关于http - 标准库 http 包默认记录到 stdout,我可以禁用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42381744/