Golang包 - go-logging

时间:2015-10-28 10:14:02

标签: go

我正在尝试使用golang包:https://github.com/op/go-logging

我按照说明进行了设置并且有效。

var log = logging.MustGetLogger("example")

var format = logging.MustStringFormatter(
    "%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}",
)

func main() {

    backend2 := logging.NewLogBackend(os.Stderr, "", 0)
    backend2Formatter := logging.NewBackendFormatter(backend2, format)
    logging.SetBackend(backend2Formatter)

    log.Info("info")
    log.Notice("notice")
    log.Warning("warning")
    log.Error("err")
    log.Critical("crit")

    r.POST("/v1.0/route-one/", controllers.RouteOne)
    r.GET("/v1.0/route-two", controllers.RouteTwo)

    r.Run(":8080")

}

但是我想从我的App中的任何控制器创建日志,如何在main.go中初始声明后从控制器内创建日志而不必重新编写格式等?理想情况下,id就像只能在任何地方写log.Error("err")来创建日志。

更新

创建了一个包:

package log

import (
    "github.com/op/go-logging"
    "os"
)

var Log = logging.MustGetLogger("example")

var format = logging.MustStringFormatter(
    "%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}",
)

func init() {

    backend2 := logging.NewLogBackend(os.Stderr, "", 0)
    backend2Formatter := logging.NewBackendFormatter(backend2, format)
    logging.SetBackend(backend2Formatter)

    Log.Info("info")
    Log.Notice("notice")
    Log.Warning("warning")
    Log.Error("err")
    Log.Critical("crit")
}

然后尝试通过导入并运行Log.Error("test")将其添加到我的控制器中,但我收到错误undefined: Log in Log.Error

0 个答案:

没有答案