Files
workouts/Workouts/Utils/AppLogger.swift
2025-07-25 17:42:25 -04:00

59 lines
1.5 KiB
Swift

import OSLog
import SwiftUI
struct AppLogger {
private let logger: Logger
private let subsystem: String
private let category: String
init(subsystem: String, category: String) {
self.subsystem = subsystem
self.category = category
self.logger = Logger(subsystem: subsystem, category: category)
}
func timestamp () -> String {
Date.now.formatDateET(format: "yyyy-MM-dd HH:mm:ss")
}
func formattedMessage (_ message: String) -> String {
"\(timestamp()) [\(subsystem):\(category)] \(message)"
}
func debug(_ message: String) {
logger.debug("\(formattedMessage(message))")
}
func info(_ message: String) {
logger.info("\(formattedMessage(message))")
}
func warning(_ message: String) {
logger.warning("\(formattedMessage(message))")
}
func error(_ message: String) {
logger.error("\(formattedMessage(message))")
}
func vdebug(_ message: String) -> any View {
logger.debug("\(formattedMessage(message))")
return EmptyView()
}
func vinfo(_ message: String) -> any View {
logger.info("\(formattedMessage(message))")
return EmptyView()
}
func vwarning(_ message: String) -> any View {
logger.warning("\(formattedMessage(message))")
return EmptyView()
}
func verror(_ message: String) -> any View {
logger.error("\(formattedMessage(message))")
return EmptyView()
}
}