一个快速的日志记录库,与 SwiftLog
集成。
Occurrence 使用 Swift Package Manager 分发。 要将其安装到项目中,请使用 Xcode 的“Swift Packages”菜单或将其作为依赖项添加到您的 Package.swift
清单中。
let package = Package(
...
dependencies: [
.package(url: "https://github.com/richardpiazza/Occurence.git", .upToNextMinor(from: "0.6.0"))
],
...
)
然后,在任何您想使用它的地方导入 Occurrence 包。
import Occurrence
在您的应用程序初始化期间,调用 Occurrence.bootstrap()
。 这会将 Swift LoggingSystem
配置为使用 Occurrence 作为 LogHandler
。
为了方便创建 Logger
引用,请使用 LazyLogger
属性包装器,它将使用特定的标签(Logger.Subsystem
)创建一个 Logger。
@LazyLogger("LoggerLabel") var logger: Logger
Occurrence 还提供了观察日志记录事件发生的能力。 这在需要将条目代理到第三方服务的情况下也很有用。
// Combine
Occurrence.logStreamer
.publisher
.sink { entry in
// process entry
}
// async/await
let task = Task {
for await entry in Occurrence.logStreamer.stream {
// process entry
}
}
Occurrence 具有许多便捷功能,可增强整体日志记录体验。
LoggableError
协议提供了一种将错误轻松转换为 Logger.Metadata
表示形式的方法。 Logger
实例也有扩展,允许直接传递 LoggableError
实例。
@LazyLogger("MyApp") var logger: Logger
enum AppError: LoggableError {
case badData
}
func throwingFunction() throws {
guard condition else {
throw logger.error("Condition not met.", AppError.badData)
}
}