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