Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang软件包-go日志记录_Go - Fatal编程技术网

Golang软件包-go日志记录

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

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

    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”