StaticLogger

一个简单的 Swift 宏,可以向类、结构体、actor 或枚举添加一个静态 logger 方法,该方法基于 bundle identifier 和类型名称使用默认的 subsystem 和 category。

用法

import OSLog
import StaticLogger

@StaticLogger
struct MyStruct {
    let x: Int

    func test() {
        Self.logger.debug("X is \(x)")
    }
}

展开为

struct MyStruct {
    let x: Int

    func test() {
        Self.logger.debug("X is \(x)")
    }

    static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "", category: "MyStruct")
}

您还可以通过将 subsystem 或 category 传递给 @StaticLogger 来覆盖 logger 的 subsystem 或 category。

@StaticLogger(subsystem: "MySubsystem", category: "MyCategory")