Golang Go语言中如何禁用第三方库的 logger
使用的第三方库中有打印日志,但我并不关心这个错误,该怎么忽律它呢,类似于 python 中的 disable_existing_loggers
Golang Go语言中如何禁用第三方库的 logger
首先确认这个库是否有日志关闭开关
如果实在没有,那么 fork 这个库,自己改下,然后引用你自己改的
一般规范的库都是有自定义 logger 的功能的。
某些没什么概念的初级开发者很多时候会用 log 库,这个可以通过 https://golang.org/pkg/log/#SetOutput 设置
某些一点概念都不懂的,只能自己手工改了
贴出这个第三方库,就知道怎么帮你了
如果是 apache 的,看了一下就没几个 log,还都是错误提示,无所谓的吧
因为服务前面还有个阿里云负载,会不停的做心跳检查,但它只做三次握手,然后发送 RST 包主动关闭连接,所以我后台服务会疯狂报 connection reset by peer
其实更合理的是,我得写个正则什么的过滤这种 log,但不知道应该放在哪里好,如果直接在源码里改,编译环境一换有可能忘记
你实现一个 io.Writer 即可…
不能关掉日志输出??
看代码,看你用的这个包支不支持让你关掉日志
这种事情在 golang 里一般不允许出现。说明你的第三方库写的太恶心人了。
在Go语言中,禁用第三方库的logger通常不是直接通过语言特性来实现的,因为Go语言本身不提供直接控制第三方库日志输出的机制。不过,你可以通过以下几种方法来达到类似的效果:
-
配置第三方库:许多第三方库允许你通过配置来控制日志输出。查阅该库的文档,看是否有禁用日志输出的选项。例如,一些库可能允许你将日志级别设置为“None”或“Off”。
-
重定向日志输出:如果第三方库没有提供禁用日志的选项,你可以尝试将日志输出重定向到一个空设备(如
/dev/null
在Unix系统上)或一个自定义的日志处理器,该处理器不执行任何操作。 -
使用构建标签:如果第三方库的日志输出是通过编译时条件控制的,你可以尝试使用Go的构建标签来排除日志相关的代码。这通常需要对库的源代码进行修改,或者找到一种方法来在构建时替换掉日志相关的部分。
-
联系库的维护者:如果上述方法都不可行,你可以考虑联系第三方库的维护者,询问是否有计划添加禁用日志的功能,或者是否可以提供一种方法来禁用日志输出。
请注意,禁用第三方库的日志可能会隐藏重要的调试信息或错误消息,因此在生产环境中禁用日志之前,请确保你已经充分测试了应用程序,并且确信不需要这些日志信息。在生产环境中,通常建议将日志输出到文件或日志管理系统,以便进行监控和故障排除。