lunar_lib/log/
cli_logger.rs1use std::{
2 fmt::Arguments,
3 io::{self, Write},
4};
5
6use crate::log::{Log, LogLevel};
7
8#[derive(Debug)]
10pub struct CliLogger;
11
12impl Log for CliLogger {
13 fn log_unchecked(&self, level: LogLevel, msg: Arguments) {
14 let output: &mut dyn Write = match level {
15 LogLevel::Error | LogLevel::Warn => &mut io::stderr(),
16 _ => &mut io::stdout(),
17 };
18
19 match level {
20 LogLevel::Info => {}
21 _ => {
22 let _ = write!(output, "[{level}]: ");
23 }
24 }
25 let _ = output.write_fmt(msg);
26 let _ = output.write(b"\n");
27 }
28}