use core::fmt::Write;
use log::{Log, Level, Metadata, Record};
use crate::print::WasmPrint;
pub struct WasmLogger(Level);
static WASM_LOGGER: WasmLogger = WasmLogger(Level::Info);
impl WasmLogger {
pub fn init() {
let _ = log::set_logger(&WASM_LOGGER);
log::set_max_level(WASM_LOGGER.0.to_level_filter());
}
}
impl Log for WasmLogger {
fn enabled(&self, metadata: &Metadata) -> bool {
metadata.level() <= self.0
}
fn log(&self, record: &Record) {
if self.enabled(record.metadata()) {
let _ = write!(WasmPrint, "{} - {}\r\n", record.level(), record.args());
}
}
fn flush(&self) {
}
}