
- 注释掉Podfile中的Alamofire依赖,更新Podfile.lock以反映更改。 - 在yana/APIs/API-README.md中新增自动认证Header机制的详细文档,描述其工作原理、实现细节及最佳实践。 - 在yana/yanaApp.swift中将print语句替换为debugInfo以增强调试信息的输出。 - 在API相关文件中实现用户认证状态检查和相关header的自动添加逻辑,提升API请求的安全性和用户体验。 - 更新多个文件中的日志输出,确保在DEBUG模式下提供详细的调试信息。
87 lines
2.7 KiB
Swift
87 lines
2.7 KiB
Swift
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())
|
||
} |