Log
是一个使用 Swift 编写的轻量级日志框架。
首先,你需要创建一个 IPrinter
实例,该实例将消息打印到特定的输出,例如 XCode 的控制台或 Console
应用程序。log
包提供了预定义的打印器,用于在 XCode 控制台 (ConsolePrinter
) 和系统控制台 (OSPrinter
) 中打印消息。你也可以创建自己的打印器。为此,你的对象必须符合 IPrinterStrategy
协议并实现必要的方法。
import Log
let osPrinter = OSPrinter()
let consolePrinter = ConsolePrinter()
其次,创建一个 Logger
实例,并在定义日志级别时将这些打印器作为初始化参数传递。日志级别决定了要打印的日志消息级别。如果日志级别设置为特定级别,则所有具有不同日志级别的消息都将被忽略。要打印所有消息,请使用 .all
。
let log = Logger(
printers: [osPrinter, consolePrinter],
logLevel: .all
)
log.error(message: "test message")
每个 IPrinter
实例都有一个格式化器数组,这些格式化器负责格式化输入消息。log
包提供了预定义的前缀和时间戳格式化器。要使用这些格式化器,你需要将它们传递给打印器的初始化器。
let osPrinter = OSPrinter(formatters: [PrefixFormatter(name: "your prefix here")])
...
log.fault(message: "message") // "🚨🚨🚨 [your prefix here] => message"
以下是预定义的格式化器列表
格式化器 | 描述 |
---|---|
PrefixLogFormatter | 向打印的消息添加指定的前缀 |
TimestampLogFormatter | 根据日期格式在打印的消息前添加时间戳 |
如果你想创建自定义消息格式化器,你的对象必须符合 ILogFormatter
协议并实现必要的方法。
struct MyCustomMessageFormatter: ILogFormatter {
func format(message: String, with logLevel: LogLevel) -> String {
// your implementation here
}
}
Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并已集成到 swift
编译器中。它尚处于早期开发阶段,但 log
确实支持在受支持的平台上使用它。
一旦你设置好 Swift 包,添加 log
作为依赖项就像将其添加到你的 Package.swift
的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/space-code/log.git", .upToNextMajor(from: "1.2.0"))
]
引导开发环境
make bootstrap
请随时帮助这个项目!如果你发现有什么可以改进的地方或想要新功能,请打开一个 issue 或发送一个 Pull Request!
Nikita Vasilev, nv3212@gmail.com
log 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。