代码之家  ›  专栏  ›  技术社区  ›  user6124024

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

go
  •  1
  • user6124024  · 技术社区  · 6 年前

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

    log.Println("[Build]: bla bla“)
    
    log.Println(“[INFO]: bla bla“)
    
    log.Printf(“[ERROR]: bla bla“)
    
    log.Println(“[WARNING]: bla bla“)
    

    我使用它来登录应用程序中的不同包 复制这一点有点令人沮丧,有没有办法创建一些通用的 我可以在我的程序中简单地重复使用它。

    我读过关于logrus等的文章,但他们提供了一些方法,但没有提供一些自定义方法或 也许我错过了什么。

    我的程序是命令行工具

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kaveh Shahbazian    6 年前

    最好使用更合适的记录器,如 zap logrus . 也更喜欢将记录器显式地作为参数传递,并避免全局记录器。

    但是,如果需要使用内置的确切日志记录工作流,并且提供了示例输出,则可以使用适当的前缀来定义它们,而不是重复每个字符串中的级别:

    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)
    )