//
// IceGlassLogger.swift
// IceGlass
//
// Copyright 2026 Rouslan Zenetl. All Rights Reserved.
//

import OSLog

struct IceGlassLogger {
    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))")
    }
}
