fix loggers

This commit is contained in:
anlicheng 2026-05-21 18:30:13 +08:00
parent acab387898
commit 1042b5c724

View File

@ -14,13 +14,11 @@ public class SDLLogger: @unchecked Sendable {
case trace = "com.jihe.punchnet.trace" case trace = "com.jihe.punchnet.trace"
} }
private static var loggers: [String: SDLLogger] { private static let debugLoggingEnabled = ProcessInfo.processInfo.environment["SDL_DEBUG_LOG"] != "0"
var loggers: [String: SDLLogger] = [:] private static let traceLoggingEnabled = ProcessInfo.processInfo.environment["SDL_TRACE_LOG"] == "1"
for sub in Subsystem.allCases { private static let loggers: [Subsystem: SDLLogger] = {
loggers[sub.rawValue] = .init(subsystem: sub) Dictionary(uniqueKeysWithValues: Subsystem.allCases.map { ($0, SDLLogger(subsystem: $0)) })
} }()
return loggers
}
private let log: Logger private let log: Logger
@ -32,9 +30,20 @@ public class SDLLogger: @unchecked Sendable {
self.log.info("\(message, privacy: .public)") self.log.info("\(message, privacy: .public)")
} }
public static func log(_ message: String, for system: Subsystem = .debug) { public static func log(_ message: @autoclosure () -> String, for system: Subsystem = .debug) {
if let logger = loggers[system.rawValue] { guard self.isEnabled(system), let logger = loggers[system] else {
logger._log(message) return
}
logger._log(message())
}
private static func isEnabled(_ system: Subsystem) -> Bool {
switch system {
case .debug:
return self.debugLoggingEnabled
case .trace:
return self.traceLoggingEnabled
} }
} }
} }