用于 Swift 的日志框架

Cocoapods Platform License

用法

logger.info("Current loggers: \(Log.loggers)")
logger.debug("Using formatter: \(Log.loggers.first!.formatter)")
logger.error(TestError.invalid)
logger.fault("some error")
打印
04-21 13:04:30.040 LoggTests.swift testFileLogger() [14] ❕ Info: Current loggers: [Logg.ConsoleLogger]
04-21 13:04:30.041 LoggTests.swift testFileLogger() [15] 🐛 Debug: Using formatter: Logg.DefaultFormatter
04-21 13:04:30.041 LoggTests.swift testFileLogger() [16] ❗ Error: invalid
04-21 13:04:30.041 LoggTests.swift testFileLogger() [17] ‼️ Fault: some error

配置

Log 类是将消息分发到所有 logger 的类,您可以通过修改 loggers 静态属性来配置这些 logger

if debug {
  Log.loggers = [ConsoleLogger()]
} else {
  Log.loggers = [CustomLogger(level: [.error, .severe])]
}

每个 logger 都有一个名为 level 的属性,您可以自定义该属性

let consoleLogger = Log.loggers.first
consoleLogger?.level = [.debug, .warning]

Level 是一个 OptionSet,具有 4 个基本值:debugwarningerrorsevere,此外还有 allnone

Logger

您可以创建和注册您自己的 logger,只需实现 Logger 协议,并将一个实例添加到 Log 类的 loggers 静态属性中。Logger 协议定义了几个属性,levelformatter,以及四个函数:debugwarnerrorsevere,它们对应于日志级别

Formatter

您可以创建您自己的 formatter,并将它用于您想要的 logger,只需创建一个实现 Formatter 协议的类,并将其分配给 logger

let consoleLogger = Log.loggers.first
consoleLogger?.formatter = CustomFormatter()