Golang - 创建自定义记录器以跨应用程序共享文件和包

时间:2018-02-21 16:46:59

标签: go

在我的程序中有很多地方我应该创建如下的日志

log.Println("[Build]: bla bla“)

log.Println(“[INFO]: bla bla“)

log.Printf(“[ERROR]: bla bla“)

log.Println(“[WARNING]: bla bla“)

我将它用于我在应用程序内部的不同包中的所有日志记录 复制这个有点令人沮丧,有没有办法创建一些通用的 我可以在程序中简单地重复使用日志。

我读到了关于logrus等但是它们提供了一些方法来做但不提供一些自定义方式或 也许我想念一些东西。

我的程序是命令行工具

1 个答案:

答案 0 :(得分:0)

最好使用更合适的记录器,例如zaplogrus。还希望明确地将记录器作为参数传递并避免使用全局记录器。

然而,如果需要使用内置的精确日志记录工作流程,使用提供的示例输出,可以使用正确的前缀定义它们,而不是在每个字符串中重复级别:

var (
    warnlog  = log.New(os.Stderr, "[ warn  ]", log.Ltime|log.Lshortfile)
    infolog  = log.New(os.Stderr, "[ info  ]", log.Ltime|log.Lshortfile)
    buildlog = log.New(os.Stderr, "[ build ]", log.Ltime|log.Lshortfile)
    errlog   = log.New(os.Stderr, "[ error ]", log.Ltime|log.Lshortfile)
)