70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Swift
		
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Swift
		
	
	
|  | // Logger.swift | ||
|  | // Utility class for logging | ||
|  | // Provides similar functionality to Android's Logger | ||
|  | 
 | ||
|  | import Foundation | ||
|  | 
 | ||
|  | public class Logger { | ||
|  |     public enum LogLevel: Int { | ||
|  |         case verbose = 0 | ||
|  |         case debug = 1 | ||
|  |         case info = 2 | ||
|  |         case warn = 3 | ||
|  |         case error = 4 | ||
|  |         case none = 5 | ||
|  |     } | ||
|  |      | ||
|  |     private static let fileLogger = FileLogHandler( | ||
|  |         directory: "guru_app", | ||
|  |         filename: "fusion-ads.log", | ||
|  |         rotationConfig: FileLogHandler.RotationConfig(maxFileSize: 5 * 1024 * 1024, maxBackupCount: 2), | ||
|  |         minimumLogLevel: .verbose | ||
|  |     ) | ||
|  |      | ||
|  |     private static var logLevel: LogLevel = .info | ||
|  |      | ||
|  |     public static func setLogLevel(_ level: LogLevel) { | ||
|  |         logLevel = level | ||
|  |     } | ||
|  |      | ||
|  |     // Verbose log | ||
|  |     public static func v(tag: String, message: String) { | ||
|  |         if logLevel.rawValue <= LogLevel.verbose.rawValue { | ||
|  |             print("V/\(tag): \(message)") | ||
|  |             fileLogger.log(tag, message, level: FileLogHandler.LogLevel.verbose) | ||
|  |         } | ||
|  |     } | ||
|  |      | ||
|  |     // Debug log | ||
|  |     public static func d(tag: String, message: String) { | ||
|  |         if logLevel.rawValue <= LogLevel.debug.rawValue { | ||
|  |             print("D/\(tag): \(message)") | ||
|  |             fileLogger.log(tag, message, level: FileLogHandler.LogLevel.debug) | ||
|  |         } | ||
|  |     } | ||
|  |      | ||
|  |     // Info log | ||
|  |     public static func i(tag: String, message: String) { | ||
|  |         if logLevel.rawValue <= LogLevel.info.rawValue { | ||
|  |             print("I/\(tag): \(message)") | ||
|  |             fileLogger.log(tag, message, level: FileLogHandler.LogLevel.info) | ||
|  |         } | ||
|  |     } | ||
|  |      | ||
|  |     // Warning log | ||
|  |     public static func w(tag: String, message: String) { | ||
|  |         if logLevel.rawValue <= LogLevel.warn.rawValue { | ||
|  |             print("W/\(tag): \(message)") | ||
|  |             fileLogger.log(tag, message, level: FileLogHandler.LogLevel.warning) | ||
|  |         } | ||
|  |     } | ||
|  |      | ||
|  |     // Error log | ||
|  |     public static func e(tag: String, message: String) { | ||
|  |         if logLevel.rawValue <= LogLevel.error.rawValue { | ||
|  |             print("E/\(tag): \(message)") | ||
|  |             fileLogger.log(tag, message, level: FileLogHandler.LogLevel.error) | ||
|  |         } | ||
|  |     } | ||
|  | } |