3

goへのログインにロガーパッケージgithub.com/jcelliott/lumberを使用しており、次のように宣言して使用しています。

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

メイン以外の関数からログを記録するにはどうすればよいですか? 明らかに、ここで 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 に答える