use crate::runtime::logging::{LogLevel, LoggingService};
#[derive(Debug, Clone, Copy)]
pub struct ConsoleLoggingService;
impl LoggingService for ConsoleLoggingService {
fn log(&self, level: LogLevel, message: &str) {
let level_str = match level {
LogLevel::Trace => "TRACE",
LogLevel::Debug => "DEBUG",
LogLevel::Info => "INFO",
LogLevel::Warn => "WARN",
LogLevel::Error => "ERROR",
};
eprintln!("[{level_str}] {message}");
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn console_logging_formats_level() {
let logger = ConsoleLoggingService;
logger.log(LogLevel::Info, "console");
}
}