我正在尝试使用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