レトロフィット 2.0 :
更新: @by Marcus Pöhls
ログイン Retrofit 2
Retrofit 2 は、あらゆるネットワーク操作を完全に OkHttp に依存しています。OkHttp は Retrofit 2 のピア依存関係であるため、Retrofit 2 が安定版リリースとしてリリースされたら、依存関係を追加する必要はありません。
OkHttp 2.6.0 には内部依存関係としてログ インターセプターが付属しており、Retrofit クライアントで直接使用できます。Retrofit 2.0.0-beta2 は引き続き OkHttp 2.5.0 を使用します。今後のリリースでは、依存関係をより高い OkHttp バージョンに引き上げる予定です。そのため、ロギング インターセプターを手動でインポートする必要があります。次の行を build.gradle ファイル内の gradle インポートに追加して、ロギング インターセプターの依存関係をフェッチします。
compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
このインターセプターについては、Square の GitHub ページにもアクセスできます。
Retrofit 2 にロギングを追加する
アプリの開発中やデバッグ目的で、ログ機能を統合してリクエストとレスポンスの情報を表示すると便利です。Retrofit 2 ではロギングがデフォルトで統合されなくなったため、OkHttp のロギング インターセプターを追加する必要があります。幸い、OkHttp には既にこのインターセプターが付属しており、OkHttpClient に対して有効にするだけで済みます。
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
// set your desired log level
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
// add your other interceptors …
// add logging as last interceptor
httpClient.addInterceptor(logging); // <-- this is the important line!
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
ロギングを最後のインターセプターとして追加することをお勧めします。これにより、以前のインターセプターでリクエストに追加した情報もログに記録されるためです。
ログレベル
あまりにも多くの情報をログに記録すると、Android モニターが壊れてしまいます。そのため、OkHttp のログ インターセプターには、NONE、BASIC、HEADERS、BODY の 4 つのログ レベルがあります。各ログ レベルについて説明し、その出力について説明します。
詳細については、次を参照してください: Retrofit 2 — ログの要求と応答
古い答え:
Retrofit 2 にログインしなくなりました。開発チームはログ機能を削除しました。正直なところ、ログ機能はそれほど信頼できるものではありませんでした。Jake Wharton は、ログに記録されたメッセージまたはオブジェクトは想定された値であり、それらが真であることを証明できないと明示的に述べました。サーバーに到着する実際のリクエストは、変更されたリクエストボディまたは何か他のものを持っている可能性があります。
デフォルトでは統合ロギングはありませんが、任意の Java ロガーを活用して、カスタマイズされた OkHttp インターセプター内で使用できます。
Retrofit 2 の詳細については、次を参照してください:
Retrofit — Getting Started and Create an Android Client