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

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

最佳答案

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

关于http - 标准库 http 包默认记录到 stdout,我可以禁用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42381744/

相关文章:

java - 基于http构建的大型rpc服务器

http - HTTP 客户端应该如何处理没有 header 的响应?

angularjs - 使用 $http 和 $q 获取数据

python - 如何在 Python 日志记录中格式化异常堆栈跟踪?

javascript - 为什么它不会 Console.log 结果?

spring-mvc - 启动时在日志中列出已注册的请求映射

reflection - 动态获取golang接口(interface)名称

forms - 应用程序/x-www-form-urlencoded 和字符集 ="utf-8"?

pointers - 函数指针参数变化

go - 如何在程序运行时安全地交换内存映射?