import Foundation /// 日志等级 public enum LogLevel: Int { case verbose = 0 case debug case info case warn case error } public class LogManager { /// 单例 public static let shared = LogManager() private init() {} /// 日志输出 /// - Parameters: /// - level: 日志等级 /// - message: 日志内容 /// - onlyRelease: 是否仅在 Release 环境输出(已修复逻辑) public func log(_ level: LogLevel, _ message: @autoclosure () -> String, onlyRelease: Bool = false) { #if DEBUG // DEBUG 环境:如果 onlyRelease 为 true,则不输出;否则正常输出 if !onlyRelease { print("[\(level)] \(message())") } #else // RELEASE 环境:如果 onlyRelease 为 true,则输出;否则不输出 if onlyRelease { print("[\(level)] \(message())") } #endif } /// 仅在 DEBUG 环境输出的日志(推荐使用) /// - Parameters: /// - level: 日志等级 /// - message: 日志内容 public func debugLog(_ level: LogLevel, _ message: @autoclosure () -> String) { #if DEBUG print("[\(level)] \(message())") #endif } } // MARK: - 原有快捷方法(保持向后兼容) public func logVerbose(_ message: @autoclosure () -> String, onlyRelease: Bool = false) { LogManager.shared.log(.verbose, message(), onlyRelease: onlyRelease) } public func logDebug(_ message: @autoclosure () -> String, onlyRelease: Bool = false) { LogManager.shared.log(.debug, message(), onlyRelease: onlyRelease) } public func logInfo(_ message: @autoclosure () -> String, onlyRelease: Bool = false) { LogManager.shared.log(.info, message(), onlyRelease: onlyRelease) } public func logWarn(_ message: @autoclosure () -> String, onlyRelease: Bool = false) { LogManager.shared.log(.warn, message(), onlyRelease: onlyRelease) } public func logError(_ message: @autoclosure () -> String, onlyRelease: Bool = false) { LogManager.shared.log(.error, message(), onlyRelease: onlyRelease) } // MARK: - 新的DEBUG专用快捷方法(推荐使用) public func debugVerbose(_ message: @autoclosure () -> String) { LogManager.shared.debugLog(.verbose, message()) } public func debugLog(_ message: @autoclosure () -> String) { LogManager.shared.debugLog(.debug, message()) } public func debugInfo(_ message: @autoclosure () -> String) { LogManager.shared.debugLog(.info, message()) } public func debugWarn(_ message: @autoclosure () -> String) { LogManager.shared.debugLog(.warn, message()) } public func debugError(_ message: @autoclosure () -> String) { LogManager.shared.debugLog(.error, message()) }