在 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" } }}
复制代码
二、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 想 后台远程关闭日志:
// 远程配置下发 falseif (!RemoteConfig.isLogOpen()) { XLog.init(LogLevel.NONE); // 立即停打}
复制代码
五、一行总结
debug / release 双包场景: gradle 里 BuildConfig.LOG_OPEN + XLog.init(LogLevel.ALL/NONE) 即可 编译期彻底关闭 XLog,release 版 0 性能损耗。
单包场景: 远程配置 → XLog.init(LogLevel.NONE) 随时关闭。
评论