标准库http包默认记录到stdout,我可以禁用它吗?

时间:2017-02-22 02:44:09

标签: http logging go

在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”等前缀。

1 个答案:

答案 0 :(得分:2)

它不会记录到stdout,如果已设置则记录到http服务器的ErrorLog,否则记录到标准记录器(log中的非方法函数使用的记录器)。如果您已经拥有记录器,请构建一个http.Server,将该记录器作为其ErrorLog并在其上调用ListenAndServe。否则,请使用log.SetOutput更改标准日志的目标。