[解決済み] グローバルロギングの正しい考え方
2022-06-16 17:08:53
質問
Goのアプリケーションロギングにはどのようなパターンがありますか? 例えば、5つのゴルーチンからログを取る必要がある場合、私は...すべきでしょうか?
-
単一の
log.Logger
を作成し、それを渡すか? -
へのポインタを渡します。
log.Logger
? - 各ゴルーチンや関数はロガーを作成すべきですか?
- ロガーはグローバル変数として作成すべきですか?
どのように解決するのですか?
<ブロッククオート- log.Loggerを1つ作成して、それを渡しますか?
それは可能です。A log.Logger は複数のゴルーチンから同時に使用することができます。
- そのlog.Loggerへのポインタを渡しますか?
log.new
は
*Logger
を返します。これは通常、オブジェクトをポインタとして渡すべきであることを示します。値として渡すと、構造体のコピー (つまり Logger のコピー) が作成され、複数のゴルーチンが同じ
io.Writer
に同時に書き込むことになります。これは、ライターの実装によっては深刻な問題になるかもしれません。
- 各ゴルーチンや関数はロガーを作成すべきですか?
私は、各関数またはゴルーチンに対して個別のロガーを作成しません。ゴルーチン (および関数) は非常に軽量なタスクに使用され、個別のロガーのメンテナンスを正当化することはできません。プロジェクトの大きなコンポーネントごとにロガーを作成するのは、良いアイデアかもしれません。たとえば、プロジェクトがメールを送信するために SMTP サービスを使用する場合、メール サービス用に別のロガーを作成すると、出力を別々にフィルタリングしてオフにできるため、良いアイデアだと思われます。
- グローバル変数としてロガーを作成する必要がありますか。
それはあなたのパッケージに依存します。前のメールサービスの例では、サービスの各インスタンスに1つのロガーを持つことがおそらく良いアイデアでしょう。これにより、ユーザーはgmailメールサービス使用中の失敗を、ローカルMTA(例:sendmail)使用中に発生した失敗とは異なる形で記録することができます。
関連
-
[解決済み] dmesgのタイムスタンプをカスタムの日付フォーマットに変換するにはどうしたらいいですか?
-
[解決済み] expressjsのログ取得のベストプラクティスは?
-
[解決済み] 異なるログレベルを使用する場合
-
[解決済み] React Nativeでロギングを行う方法
-
[解決済み] パラメータと戻り値におけるポインタと値の比較
-
[解決済み】Spring Boot。application.propertiesでロギングレベルを設定するにはどうすればよいですか?
-
[解決済み】cronジョブのログを取るには?
-
[解決済み] Python Logging - インポートモジュールからのロギングを無効にする
-
[解決済み] Pythonのログ(関数名、ファイル名、行番号)を1つのファイルを使って記録する。
-
[解決済み】なぜjava.util.loggingを使用しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jiraのワークログを見る
-
[解決済み] MSIログファイルの作成
-
[解決済み] 異なるログレベルを使用する場合
-
[解決済み] logrotateのチェックを1回だけ手動で実行することは可能ですか?
-
[解決済み] React Nativeでロギングを行う方法
-
[解決済み】Spring Boot。application.propertiesでロギングレベルを設定するにはどうすればよいですか?
-
[解決済み] Scalaのロギング
-
[解決済み] 画面(プログラム)の出力をファイルに保存する
-
[解決済み] dockerコンテナのログを1つのファイルにリダイレクトするには?
-
[解決済み] グローバルロギングの正しい考え方