HTTP レスポンスのログ記録の機能強化
HTTP リクエストのログ記録は、デバッグとパフォーマンスの監視の重要な側面です。リクエストをログに記録するための Gorilla の LoggingHandler のようなソリューションはありますが、応答のログ記録は見落とされがちなタスクです。
これに対処するために、応答をログに記録し、それらをクライアントに転送する、Eric Broda の受け入れられた回答の修正版を調べてみましょう。
func logHandler(fn http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { x, err := httputil.DumpRequest(r, true) if err != nil { http.Error(w, fmt.Sprint(err), http.StatusInternalServerError) return } log.Println(fmt.Sprintf("%q", x)) rec := httptest.NewRecorder() fn(rec, r) log.Println(fmt.Sprintf("%q", rec.Body)) // Forward the response to the client for k, v := range rec.HeaderMap { w.Header()[k] = v } w.WriteHeader(rec.Code) rec.Body.WriteTo(w) } }
この変更された関数は次のことを実現します:
この変更された関数をアプリケーションに統合することで、リクエストとレスポンスの両方をシームレスにログに記録し、HTTP の包括的なビューを提供できます。コミュニケーション。
以上がGo で HTTP リクエストとレスポンスの両方を効果的に記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。