// // SDLLogger.swift // Tun // // Created by 安礼成 on 2024/3/13. // import Foundation import os public class SDLLogger: @unchecked Sendable { public enum Subsystem: String { case punchnet = "com.jihe.punchnet" case debug = "com.jihe.punchnetdebug" } public enum Level: Int8, CustomStringConvertible { case debug = 0 case info = 1 case warning = 2 case error = 3 public var description: String { switch self { case .debug: return "Debug" case .info: return "Info" case .warning: return "Warning" case .error: return "Error" } } } static let shared = SDLLogger(level: .debug, subsystem: .punchnet) static let sharedDebug = SDLLogger(level: .debug, subsystem: .debug) private let level: Level private let log: Logger private init(level: Level, subsystem: Subsystem) { self.level = level self.log = Logger(subsystem: subsystem.rawValue, category: "punchnet") } public func log(_ message: String, level: Level = .debug) { self.log.info("\(message, privacy: .public)") } }