punchnet-macos/Tun/Punchnet/SDLLogger.swift
2026-04-10 18:30:59 +08:00

42 lines
1.0 KiB
Swift

//
// SDLLogger.swift
// Tun
//
// Created by on 2024/3/13.
//
import Foundation
import os
public class SDLLogger: @unchecked Sendable {
public enum Subsystem: String, CaseIterable {
case punchnet = "com.jihe.punchnet"
case debug = "com.jihe.punchnet.debug"
case trace = "com.jihe.punchnet.trace"
}
private static var loggers: [String: SDLLogger] {
var loggers: [String: SDLLogger] = [:]
for sub in Subsystem.allCases {
loggers[sub.rawValue] = .init(subsystem: sub)
}
return loggers
}
private let log: Logger
private init(subsystem: Subsystem) {
self.log = Logger(subsystem: subsystem.rawValue, category: "punchnet")
}
public func _log(_ message: String) {
self.log.info("\(message, privacy: .public)")
}
public static func log(_ message: String, for system: Subsystem = .punchnet) {
if let logger = loggers[system.rawValue] {
logger._log(message)
}
}
}