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>
44 lines
1.4 KiB
Swift
44 lines
1.4 KiB
Swift
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
|
||
}
|
||
}
|