3

我正在使用记录器包github.com/jcelliott/lumber来登录 go,我声明并像这样使用它:

func main() {
log := lumber.NewConsoleLogger(lumber.DEBUG)
...
log.Error("File error: %v\n", e)
}

如何从 main 之外的函数登录?显然这里的 log 是在 main 中声明的,这限制了它的范围,但是我还没有找到在 GO 中拥有全局变量的方法,有没有比在每个函数中重新声明记录器更好的方法?

4

1 回答 1

4

像这样声明你的全局变量:

var log lumber.Logger

func anyFunc() {
  log.Error("File error: %v\n", e)
}

func main() {
  log = lumber.NewConsoleLogger(lumber.DEBUG)
  anyFunc()
}
于 2013-10-05T14:50:21.860 回答