Android Retrofit日志不显示

时间:2016-08-12 13:40:58

标签: android logging retrofit2 okhttp3

Retrofit不会打印日志。日志级别设置为详细。也试过HttpLoggingInterceptor。

使用这些渐变

new Frame().setDetails(new InterfaceClass("path/to/some/folder"));

代码

compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'

5 个答案:

答案 0 :(得分:4)

在某些情况下,您需要在某些物理Android设备上允许扩展日志。 这可以在android手机设置的开发者菜单中完成。

答案 1 :(得分:2)

事实上,我不知道你为什么不看日志,但这是我的代码的一部分工作正常:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
httpClientBuilder.addInterceptor(logging);

String creditentials = username + ":" + password;
_base64 = "Basic " + Base64.encodeToString(creditentials.getBytes(), Base64.NO_WRAP);

Interceptor authorization = chain -> {
    Request newRequest = chain.request().newBuilder()
            .addHeader("Authorization", _base64)
            .addHeader("Accept", "application/json")
            .build();
    return chain.proceed(newRequest);
};

httpClientBuilder.addInterceptor(authorization);

_retrofit = new Retrofit.Builder()
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .addConverterFactory(GsonConverterFactory.create())
        .baseUrl(API_URL)
        .client(httpClientBuilder.build())
        .build();

答案 2 :(得分:2)

在某些设备(模拟器或真实的Android设备)上,默认情况下禁用日志记录。您需要启用此选项才能查看日志。 与魅族M3进行了尝试。

  1. 转到开发者选项

  2. 找到性能优化

  3. 找到高级日志记录
  4. 全部允许。

请注意,对于不同的设备,步骤可能会稍有不同。

enter image description here enter image description here

答案 3 :(得分:0)

当我的模拟器上的开发人员选项中的日志缓冲区设置为关闭时,我遇到了没有看到OkHttp网络日志的问题,因此在我更改为任何其他值(例如16m并再次尝试)后,它会正确显示日志。 / p>

答案 4 :(得分:0)

在我的情况下,我忘记了呼叫setLevel(HttpLoggingInterceptor.Level.BASIC),并且默认情况下它被隐式设置为NONE