feat(sdk): 日志等级 logLevel 配置化(默认 .off,对外发布完全静默)

BleLog 之前所有调用都无条件 print(Debug 包),集成方没法关。新增
public enum BleLogLevel(off/error/warn/info/debug),通过
DuooomiBleConfig.logLevel 传入,DuooomiBleSDK.init 第一行写入
BleLog.level。默认 .off 保证对外集成默认静默,排查时显式开 .debug。
保留 #if DEBUG 兜底,Release 任何 level 都不输出。

frameIntervalMs 越界 warn 从 DuooomiBleConfig.init 挪到
DuooomiBleSDK.init 内、level 设置之后,避免在 level 写入前丢日志。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
km2023
2026-05-20 16:02:28 +08:00
parent ff62b50810
commit 6ed3c555df
4 changed files with 44 additions and 6 deletions

View File

@@ -1,28 +1,43 @@
import Foundation
/// SDK `DuooomiBleConfig.logLevel` Release
public enum BleLogLevel: Int {
case off = 0
case error
case warn
case info
case debug
}
enum BleLog {
/// `DuooomiBleSDK.init(config:)` `.off`
static var level: BleLogLevel = .off
static func d(_ message: @autoclosure () -> String, _ category: String = "General") {
#if DEBUG
guard level.rawValue >= BleLogLevel.debug.rawValue else { return }
print("[DuooomiBleSDK][\(category)] \(message())")
#endif
}
static func i(_ message: @autoclosure () -> String, _ category: String = "General") {
#if DEBUG
guard level.rawValue >= BleLogLevel.info.rawValue else { return }
print(" [DuooomiBleSDK][\(category)] \(message())")
#endif
}
static func w(_ message: @autoclosure () -> String, _ category: String = "General") {
#if DEBUG
guard level.rawValue >= BleLogLevel.warn.rawValue else { return }
print("⚠️ [DuooomiBleSDK][\(category)] \(message())")
#endif
}
static func e(_ message: @autoclosure () -> String, _ category: String = "General") {
#if DEBUG
guard level.rawValue >= BleLogLevel.error.rawValue else { return }
print("❌ [DuooomiBleSDK][\(category)] \(message())")
#endif
}
}