如何为Retrofit配置调试和发布日志级别?

时间:2015-02-06 16:14:31

标签: android android-gradle retrofit android-debug

我在Android项目中使用Retrofit。在开发时,我为RestAdapter启用完整日志输出,如下所示:

new RestAdapter.Builder()
    .setLogLevel(RestAdapter.LogLevel.FULL);

当我烘焙版本时,由于显而易见的原因,日志级别设置为RestAdapter.LogLevel.NONE

我想根据构建/文件夹架构自动切换此设置:

.
├── app
│   └── src
│       ├── debug
│       ├── main
│       └── release

如何将RestAdapter.LogLevel.FULL移至app/src/debugRestAdapter.LogLevel.NONE移至app/src/release

2 个答案:

答案 0 :(得分:10)

更好的方法是通过build.gradle文件:

buildTypes {
    debug {
        buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.FULL'
    }

    release {
        buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.NONE'
    }
}

然后在代码中执行此操作:

mRestAdapter = new RestAdapter.Builder()
    .setEndpoint("http://something.com")
    .setLogLevel(BuildConfig.RETROFIT_LOG_LEVEL)
    .build();

这种方式在运行时没有检查,只在编译时

答案 1 :(得分:5)

最简单的方法是使用BuildConfig.DEBUG标志,对于调试版本自动设置为true,对于版本构建自动设置为false。

我是这样做的:

RestAdapter adapter = new RestAdapter.Builder()
    .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)