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 个基本值:debug
、warning
、error
、severe
,此外还有 all
和 none
您可以创建和注册您自己的 logger,只需实现 Logger
协议,并将一个实例添加到 Log
类的 loggers
静态属性中。Logger
协议定义了几个属性,level
和 formatter
,以及四个函数:debug
、warn
、error
和 severe
,它们对应于日志级别
您可以创建您自己的 formatter,并将它用于您想要的 logger,只需创建一个实现 Formatter
协议的类,并将其分配给 logger
let consoleLogger = Log.loggers.first
consoleLogger?.formatter = CustomFormatter()