punchnet-macos/Tun/Punchnet/SDLLogger.swift
2026-04-10 16:51:29 +08:00

53 lines
1.3 KiB
Swift

//
// 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)")
}
}