net/http でのカスタム ログイン
net/http パッケージは、Go アプリケーションで HTTP リクエストとレスポンスを処理する便利な方法を提供します。ただし、エラー報告には独自のデフォルト ロガーが使用されます。カスタマイズされたエラー ログの場合、net/http のサーバー構造体にカスタム ロガーを指定できます。この記事では、これを実現する方法を説明します。
カスタム ロガーの実装
内部でザップ ロガーを使用する AppLogger というカスタム ロガー実装があるとします。このカスタム ロガーを net/http と統合するには、io.Writer インターフェイスを実装し、AppLogger を使用してエラーを書き込む新しいタイプを作成できます。
type serverJsonWriter struct { io.Writer } func (w serverJsonWriter) Write(p []byte) (n int, err error) { // Here you would implement custom logging logic using your AppLogger // ... return len(p), nil }
サーバー構造体の作成
サーバー構造体でカスタム ロガーを使用するには、ErrorLog フィールドをサーバー構造体のインスタンスに設定するだけです。サーバーJsonWriterタイプ。また、AppLogger がラップする zap ロガーを使用して log.Logger を初期化する必要もあります。
logger, err := cfg.Build() if err != nil { // Handle error } server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&serverJsonWriter{}, "", 0), }
このメソッドを実装すると、カスタム仕様に従って net/http エラーがログに記録され、より多くのエラーが可能になります。アプリケーションのログ記録とエラー報告を制御します。
以上がGo で net/http のカスタム ロギングを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。