在 XLog 里实现 debug 开启 / release 关闭 日志,不需要自己写开关 ,官方已提供 编译期 + 运行时 两级方案,零运行时开销 。 下面给出 Java & Kotlin 两种写法,直接拷贝即可。
一、build.gradle 里利用 BuildConfig.DEBUG 自动切换
gradle
android {
...
buildTypes {
debug {
// debug 版打开 XLog
buildConfigField "boolean", "LOG_OPEN", "true"
}
release {
// release 版彻底关闭(编译期优化)
buildConfigField "boolean", "LOG_OPEN", "false"
}
}
}
二、Application 里一行代码初始化
java
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
// 只在 debug 编译时生效,release 版不会打印也不会初始化
if (BuildConfig.LOG_OPEN) {
XLog.init(LogLevel.ALL); // 调试版全开
} else {
XLog.init(LogLevel.NONE); // 发布版全关(0 开销)
}
}
}
三、Kotlin 更简洁
kotlin
class App : Application() {
override fun onCreate() {
super.onCreate()
XLog.init(if (BuildConfig.LOG_OPEN) LogLevel.ALL else LogLevel.NONE)
}
}
四、运行时动态关闭(可选)
若 同一份 APK 想 后台远程关闭日志:
java
// 远程配置下发 false
if (!RemoteConfig.isLogOpen()) {
XLog.init(LogLevel.NONE); // 立即停打
}
五、一行总结
debug / release 双包场景 : gradle 里 BuildConfig.LOG_OPEN + XLog.init(LogLevel.ALL/NONE) 即可 编译期彻底关闭 XLog ,release 版 0 性能损耗。
单包场景 : 远程配置 → XLog.init(LogLevel.NONE) 随时关闭。