在 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 想 後台遠程關閉日誌:
// 遠程配置下發 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) 隨時關閉。