Retrofit 2.0 :
更新: @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。我们将逐个说明每个日志级别并描述其输出。
更多信息请访问:Retrofit 2-记录请求和响应
旧回答:
Retrofit 2不再提供日志记录功能。开发团队删除了日志记录功能。说实话,日志记录功能也并不是很可靠。Jake Wharton明确表示,记录的消息或对象是假定值,不能证明它们是真实的。到达服务器的实际请求可能已更改请求主体或其他内容。
即使默认情况下没有集成日志记录功能,您仍然可以利用任何Java日志记录器,并将其用于自定义的OkHttp拦截器中。
有关Retrofit 2的更多信息,请参考:Retrofit-入门和创建Android客户端
FULL
应该返回正文,但好像并没有。 - theblang