1. ホーム
  2. error-handling

[解決済み] Golang プログラムが呼び出したエラーの行番号を表示させるには?

2022-10-05 03:11:56

質問

私はGolangのプログラムで、エラーをスローするために log.Fatal が、しかし log.Fatal が表示される行は表示されません。 log.Fatal が実行された行は表示されません。log.Fatalを呼び出した行番号にアクセスする方法はないのでしょうか?つまり、エラーをスローするときに行番号を取得する方法はないのでしょうか?

私はこれをググろうとしましたが、方法が分かりませんでした。私が得ることができた最高のものは スタックトレースを表示する で、これは良いことだと思いますが、少しやりすぎかもしれません。また、私は debug.PrintStack() のような組み込み関数がないことに驚いています。 log.FatalStackTrace() のような組み込み関数がないことに驚いています。

また、私が独自のデバッグやエラー処理のものを作りたくない理由は、人々が私の特別な衣装処理コードを使用する方法を学ぶ必要がないようにしたいからです。私は、後で私のコードを読んで、次のようになるような標準的なものが欲しいのです。

ああ、これはエラーを投げて X をしているんだな...」と。

私のコードについて人々が学ぶ必要がないほど、良いことです :)

どのように解決するのですか?

カスタム Logger またはデフォルトの Logger に Flags を設定し、以下のものを含めることができます。 Llongfile または Lshortfile

// to change the flags on the default logger
log.SetFlags(log.LstdFlags | log.Lshortfile)