gpt4 book ai didi

go - Golang 包中的正确日志记录实现

转载 作者:行者123 更新时间:2023-12-01 19:49:24 24 4
gpt4 key购买 nike

我有小Golang package这做了一些工作。这项工作假设可能会产生大量错误,这是可以的。当前所有错误都被忽略。是的,它可能看起来很奇怪,但请访问链接并检查包的主要用途。我想扩展包的功能并提供查看运行时发生的错误的能力。但由于缺乏软件设计技能,我有一些问题没有答案。

起初,我想使用现有的日志记录(zerolog、zap 或其他)在包内实现日志记录。但是,包的用户可以吗?因为他们可能想使用其他日志记录包并想修改输出格式。也许可以为用户提供一种方法来注入(inject)它自己的日志记录?

我希望能够提供易于配置的日志记录方式,可以根据用户需求打开或关闭。

最佳答案

一些 go lib 像这样使用日志记录

在你的包中定义一个记录器接口(interface)

type Yourlogging interface{
Errorf(...)
Warningf(...)
Infof(...)
Debugf(...)
}

并为这个接口(interface)定义一个变量

  var mylogger Yourlogging
func SetLogger(l yourlogging)error{
mylogger = l
}

在你的函数中,你可以调用它们进行日志记录

  mylogger.Infof(..)

mylogger.Errorf(...)

你不需要实现这个接口(interface),但是你可以使用实现了这个接口(interface)的人

 for example:
SetLogger(os.Stdout) //logging output to stdout
SetLogger(logrus.New()) // logging output to logrus (github.com/sirupsen/logrus)

关于go - Golang 包中的正确日志记录实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62807327/

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