如何为 Retrofit 配置调试和发布日志级别?
How to configure debug and release log level for Retrofit?
我在我的 Android 项目中使用 Retrofit。在开发过程中,我启用了 RestAdapter
的完整日志输出,如下所示:
new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL);
出于显而易见的原因,当我烘焙版本时,日志级别设置为 RestAdapter.LogLevel.NONE
。
我想根据 build/folder 架构自动切换此设置:
.
├── app
│ └── src
│ ├── debug
│ ├── main
│ └── release
如何将 RestAdapter.LogLevel.FULL
移动到 app/src/debug
并将 RestAdapter.LogLevel.NONE
移动到 app/src/release
?
最简单的方法是使用 BuildConfig.DEBUG
标志,该标志对于调试版本自动设置为 true,对于发布版本自动设置为 false。
我是这样做的:
RestAdapter adapter = new RestAdapter.Builder()
.setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
更好的方法是通过 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();
这样运行时不检查,只在编译时检查
我在我的 Android 项目中使用 Retrofit。在开发过程中,我启用了 RestAdapter
的完整日志输出,如下所示:
new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL);
出于显而易见的原因,当我烘焙版本时,日志级别设置为 RestAdapter.LogLevel.NONE
。
我想根据 build/folder 架构自动切换此设置:
.
├── app
│ └── src
│ ├── debug
│ ├── main
│ └── release
如何将 RestAdapter.LogLevel.FULL
移动到 app/src/debug
并将 RestAdapter.LogLevel.NONE
移动到 app/src/release
?
最简单的方法是使用 BuildConfig.DEBUG
标志,该标志对于调试版本自动设置为 true,对于发布版本自动设置为 false。
我是这样做的:
RestAdapter adapter = new RestAdapter.Builder()
.setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
更好的方法是通过 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();
这样运行时不检查,只在编译时检查