logging.rs

 1use log::{Level, Log, Metadata, Record};
 2
 3struct ConsoleLogger;
 4
 5impl Log for ConsoleLogger {
 6    fn enabled(&self, _metadata: &Metadata) -> bool {
 7        true
 8    }
 9
10    fn log(&self, record: &Record) {
11        if !self.enabled(record.metadata()) {
12            return;
13        }
14
15        let message = format!(
16            "[{}] {}: {}",
17            record.level(),
18            record.target(),
19            record.args()
20        );
21        let js_string = wasm_bindgen::JsValue::from_str(&message);
22
23        match record.level() {
24            Level::Error => web_sys::console::error_1(&js_string),
25            Level::Warn => web_sys::console::warn_1(&js_string),
26            Level::Info => web_sys::console::info_1(&js_string),
27            Level::Debug | Level::Trace => web_sys::console::log_1(&js_string),
28        }
29    }
30
31    fn flush(&self) {}
32}
33
34pub fn init_logging() {
35    log::set_logger(&ConsoleLogger).ok();
36    log::set_max_level(log::LevelFilter::Info);
37}