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