写点什么

XLog debug 开启打印日志,release 关闭打印日志

作者:lichong951
  • 2025-11-28
    北京
  • 本文字数:727 字

    阅读完需:约 2 分钟

XLog debug 开启打印日志,release 关闭打印日志

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) 即可 编译期彻底关闭 XLogrelease 版 0 性能损耗

单包场景远程配置 → XLog.init(LogLevel.NONE) 随时关闭。

用户头像

lichong951

关注

还未添加个人签名 2018-12-28 加入

还未添加个人简介

评论

发布
暂无评论
XLog debug 开启打印日志,release 关闭打印日志_an'droid_lichong951_InfoQ写作社区