Golang软件包-go日志记录
我正在尝试使用golang软件包: 我已经按照说明进行了设置,并且可以正常工作Golang软件包-go日志记录,go,Go,我正在尝试使用golang软件包: 我已经按照说明进行了设置,并且可以正常工作 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() { bac
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")
}
但是,我想从我的应用程序中的任何控制器创建日志,在main.go中进行初始声明后,如何从控制器中创建日志,而不必重新写入格式等?理想情况下,我希望能够在任何地方编写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
的错误。编写一个包,公开配置的记录器。在你的控制器中导入这个包。@thwd所以我制作了一个名为log的包。在一个名为“init()”的函数中调用了日志代码,然后导入到我的控制器“%u”github.com/MediaMath/apps\u api/log”`中,但我得到的错误是undefined:log in log.error
当我尝试调用时,有什么想法吗?-更新的问题在第二个示例中,var log
位于main()
的范围内。它应该是一个全局变量(第一个字母大写),以便在main
和包本身之外访问。@Nadh再次更新,类似的错误导入\uu
会忽略包的标识符。我想你需要导入。“github.com/bla/log”