gpt4 book ai didi

logging - GO lang日志包的局限性

转载 作者:IT王子 更新时间:2023-10-29 01:01:56 25 4
gpt4 key购买 nike

我正在 Go 中实现记录器。我正在考虑为此使用 logrus。我想了解内置日志包的局限性。

我知道如果我们想将日志写入文件或实现滚动文件日志等,我们需要手动添加此功能。我们必须选择外部日志包还有其他限制吗?

最佳答案

使用内置 log 记录到文件包不是问题,你可以使用log.SetOutput()Logger.SetOutput()设置目的地 io.Writer除了默认的 os.Stderr,例如文件 *os.File .

缺少和经常希望的是分级日志记录(例如 INFOWARNDEBUGERROR 等.).有关推理,请阅读博客文章 Dave Cheney: Let's talk about logging .

您也无法强制执行特定的 log.Logger由指定包使用,除非这些包“愿意”合作(例如,它们提供 SetLogger() 函数)。

滚动日志文件也是一项缺失的功能。

另一方面,“扩展”标准记录器以登录到 MongoDB 等也很容易,有关详细信息,请参阅 Go: Create io.Writer inteface for logging to mongodb database .使用 MongoDB,您还可以使用 Capped collection这将隐含地为您提供“滚动文件”功能。

关于logging - GO lang日志包的局限性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com