
在 XLog 里实现 debug 开启 / release 关闭 日志,不需要自己写开关,官方已提供 编译期 + 运行时 两级方案,零运行时开销。
下面给出 Java & Kotlin 两种写法,直接拷贝即可。
一、build.gradle 里利用 BuildConfig.DEBUG 自动切换
android {
...
buildTypes {
debug {
// debug 版打开 XLog
buildConfigField "boolean", "LOG_OPEN", "true"
}
release {
// release 版彻底关闭(编译期优化)
buildConfigField "boolean", "LOG_OPEN", "false"
}
}
}undefined 二、Application 里一行代码初始化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 更简洁
class App : Application() {
override fun onCreate() {
super.onCreate()
XLog.init(if (BuildConfig.LOG_OPEN) LogLevel.ALL else LogLevel.NONE)
}
}四、运行时动态关闭(可选)
若 同一份 APK 想 后台远程关闭日志:
// 远程配置下发 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) 随时关闭。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。