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}