一个简单的 Swift 6 日志库,提供易于使用的日志功能,支持不同的日志级别和后端。
.debug
、.info
、.warning
和 .error
级别。LoggerBackend
协议,可以轻松创建自定义日志后端。ConsoleLogBackend
和 OSLogBackend
。DispatchQueue
实现线程安全的日志记录。将包添加到您的 Package.swift
文件
dependencies: [
.package(url: "https://github.com/fatbobman/SimpleLogger.git", from: "0.0.1")
]
然后在您的代码中导入该模块
import SimpleLogger
let logger: LoggerManagerProtocol = .default(subsystem: "com.yourapp", category: "networking")
let logger: LoggerManagerProtocol = .console()
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
遵循 LoggerBackend
协议以创建自定义后端
public protocol LoggerBackend: Sendable {
var subsystem: String { get }
var category: String { get }
func log(level: LogLevel, message: String, metadata: [String: String]?)
}
示例
struct CustomLoggerBackend: LoggerBackend {
let subsystem: String = "Custom Logger"
func log(level: LogLevel, message: String, metadata: [String: String]?) {
// Custom logging implementation
}
}
设置 DisableLogger
环境变量以禁用日志记录
ProcessInfo.processInfo.environment["DisableLogger"] = "true"
import SimpleLogger
let logger: LoggerManagerProtocol = .default(subsystem: "com.example.app", category: "general")
logger.info("App started")
import SimpleLogger
let logger: LoggerManagerProtocol = .console()
logger.debug("Debugging information")
struct CustomLogger: LoggerManagerProtocol {
let expect: @Sendable (String, LogLevel) -> Void
func log(_ message: String, level: LogLevel, file: String, function: String, line: Int) {
expect(message, level)
}
}
let logger: LoggerManagerProtocol = CustomLogger(expect: { msg, level in
#expect(msg == "Hello, World!")
#expect(level == .info)
})
logger.info("Hello, World!")
本项目基于 MIT 许可证。 详情请参阅 LICENSE 文件。