Go の net/http パッケージのエラー ログをカスタマイズするにはどうすればよいですか?
Nov 28, 2024 am 10:48 AMnet/http を使用したカスタム形式でのエラーのログ記録
net/http では、Server.ErrorLog を使用してエラーをログに記録できます。 フィールド。カスタム形式でエラーをログに記録するには、デフォルトのロガーを独自の実装に置き換えることができます。
カスタム ロギングの実装
カスタム ロガーを作成するには、次のタイプを定義します。以下に示すように、io.Writer インターフェイスを実装します。例:
type CustomLogger struct { writer io.Writer } func (l *CustomLogger) Write(p []byte) (n int, err error) { // Implement custom logging logic here }
net/http でのカスタム ロガーの使用
カスタム ロガーを取得したら、それを http.Server の ErrorLog として設定できます。
server := &http.Server{ Addr: ":8080", Handler: myHandler, ErrorLog: &CustomLogger{writer: os.Stderr}, }
net/http エラーに対する Zap Logger の使用ロギング
エラーを Zap と同じ形式で書き込むには、エラー メッセージを Zap ロガーに転送する serverJsonWriter タイプを実装する必要があります。方法は次のとおりです:
type serverJsonWriter struct { fw *fwdToZapWriter } func (w serverJsonWriter) Write(p []byte) (n int, err error) { w.fw.logger.Errorw(string(p)) return len(p), nil }
fwdToZapWriter は次のとおりです:
type fwdToZapWriter struct { logger *zap.SugaredLogger } func (fw *fwdToZapWriter) Write(p []byte) (n int, err error) { fw.logger.Errorw(string(p)) return len(p), nil }
サーバーで serverJsonWriter タイプを使用できます:
server := &http.Server{ Addr: ":8080", Handler: myHandler, ErrorLog: log.New(&serverJsonWriter{fw: &fwdToZapWriter{logger: myZapLogger}}, "", 0), }
これらの手順を実装すると、 Zap を使用して、独自のカスタム形式で net/http エラーをログに記録できますロガー。
以上がGo の net/http パッケージのエラー ログをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?
