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

JJD*_*JJD 3 android android-debug android-gradle-plugin retrofit

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

new RestAdapter.Builder()
    .setLogLevel(RestAdapter.LogLevel.FULL);
Run Code Online (Sandbox Code Playgroud)

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

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

.
??? app
?   ??? src
?       ??? debug
?       ??? main
?       ??? release
Run Code Online (Sandbox Code Playgroud)

我怎么能RestAdapter.LogLevel.FULL进入app/src/debugRestAdapter.LogLevel.NONE进入app/src/release

xor*_*ate 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'
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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


Tan*_*.7x 5

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

我是这样做的:

RestAdapter adapter = new RestAdapter.Builder()
    .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
Run Code Online (Sandbox Code Playgroud)