From 44057648d922fab83d03b40d5169f883693e7e22 Mon Sep 17 00:00:00 2001 From: Adam Perry Date: Sun, 23 Aug 2020 13:13:27 -0700 Subject: [PATCH] Use native console levels. Allows using native devtools controls for choosing what shows up. --- src/lib.rs | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index db97446..8a48ec1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,14 +14,31 @@ extern "C" { fn mark(a: &str); #[wasm_bindgen(js_namespace = performance)] fn measure(name: &str, startMark: &str); + #[wasm_bindgen(js_namespace = console, js_name = log)] fn log1(message: &str); #[wasm_bindgen(js_namespace = console, js_name = log)] - fn log2(message1: &str, message2: &str); - #[wasm_bindgen(js_namespace = console, js_name = log)] - fn log3(message1: &str, message2: &str, message3: &str); - #[wasm_bindgen(js_namespace = console, js_name = log)] fn log4(message1: &str, message2: &str, message3: &str, message4: &str); + + #[wasm_bindgen(js_namespace = console, js_name = debug)] + fn debug1(message: &str); + #[wasm_bindgen(js_namespace = console, js_name = debug)] + fn debug4(message1: &str, message2: &str, message3: &str, message4: &str); + + #[wasm_bindgen(js_namespace = console, js_name = info)] + fn info1(message: &str); + #[wasm_bindgen(js_namespace = console, js_name = info)] + fn info4(message1: &str, message2: &str, message3: &str, message4: &str); + + #[wasm_bindgen(js_namespace = console, js_name = warn)] + fn warn1(message: &str); + #[wasm_bindgen(js_namespace = console, js_name = warn)] + fn warn4(message1: &str, message2: &str, message3: &str, message4: &str); + + #[wasm_bindgen(js_namespace = console, js_name = error)] + fn error1(message: &str); + #[wasm_bindgen(js_namespace = console, js_name = error)] + fn error4(message1: &str, message2: &str, message3: &str, message4: &str); } pub struct WASMLayerConfig { @@ -122,7 +139,14 @@ impl LookupSpan<'a>> Layer for WASMLayer { "color: inherit", ); } else { - log1(&format!("{} {}{}", level, origin, recorder)); + let output = format!("{}{}", origin, recorder); + match *level { + tracing::Level::TRACE => debug1(&output), + tracing::Level::DEBUG => debug1(&output), + tracing::Level::INFO => info1(&output), + tracing::Level::WARN => warn1(&output), + tracing::Level::ERROR => error1(&output), + } } } if self.config.report_logs_in_timings {