Faraday: ファラデーがPOSTリクエスト本文をログに記録しない

作成日 2013年04月09日  ·  11コメント  ·  ソース: lostisland/faraday

次のコードを使用して接続を作成しています。

<strong i="6">@connection</strong> = Faraday.new(HOST, ssl: { verify: true }) do |faraday|
  faraday.request :url_encoded
  faraday.response :logger
  faraday.adapter Faraday.default_adapter
end

次に、次のように投稿を実行します。

@connection.post do |request|
  request.url "#{my_uri.path}?#{my_uri.query}"
  request.headers['Content-Type'] = 'application/json'
  request.body = my_object.to_json
end

リクエストは正常に機能します。 問題は、ログにリクエストの本文が表示されず、リクエストのURLのみが表示されることです。

最も参考になるコメント

このページをGoogleで見つけたので、これがサポートされるようになりました。

require "logger"

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

必要に応じて、よりきめ細かい設定も利用できます。 プルリクエストを参照してください。

全てのコメント11件

ロガーはボディを行いません。 これはオプションの機能かもしれませんが、デフォルトでは、ボディがかなり大きくなる可能性があり、ログが非常に速く膨らむため、ボディを実行するべきではないと思います。

全身を記録したいユースケースは複数あると思います。 私もこれが必要です。 はい、本文はかなり大きくなる可能性がありますが、ログレベルdebugを使用して、渡されたロガーインスタンスに冗長性を制御させることができます。

@mtarnovan同意しました。 参照されているプルリクエストに従って更新してください。 この機能を追加することもできますが、オプトインする必要があり、プレーンテキスト以外の本文(圧縮またはバイナリ応答など)のダンプを回避するための何らかのガードが必要になります。

:+1:デバッグ用のキー

このページをGoogleで見つけたので、これがサポートされるようになりました。

require "logger"

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

必要に応じて、よりきめ細かい設定も利用できます。 プルリクエストを参照してください。

これはurl_encodedリクエストでは機能しないようですか?

こんにちは@vemv 、ミドルウェアの順序はファラデーで非常に重要です。
接続初期化コードを提供して、「 url_encodedリクエストで機能しないように見える」理由を詳しく説明してください。
あなたが得る出力は何ですか、そして期待されるものは何ですか?

私はこれが古いことを知っていますが、OPが応答をログに記録していることは誰にも起こりませんでした: faraday.response :logger

@jpickwell loggerミドルウェアは応答ミドルウェアとして登録されているため、 faraday.responseを使用します。 実際には、リクエストとレスポンスの両方をログに記録します😄

ちょうどこれに出くわしました。 この行では、リクエストの本文を表示するために2つの引数を渡す必要があるようです。

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), body: true, bodies: { request: true, response: true }
end

(最近のコミットで変更されていない限り🤔)

@davidalpertは必要ありません。単に、 bodies: trueを渡して両方を有効にするか、上記の例のように個別の値を使用して、より詳細に制御することができます。
その例にはbody: trueオプションがあるようですが、残念ながらそれは有効なオプションではありません(複数形が間違っている可能性がありますか?)

このページは役に立ちましたか?
0 / 5 - 0 評価