tracing-web
tracing-web copied to clipboard
A tracing subscriber for the web
tracing-web
A tracing compatible subscriber layer for web platforms.
Overview
tracing-web can be used in conjunction with the tracing-subscriber crate to quickly install a
subscriber that emits messages to the dev-tools console, and events to the Performance API. An example
configuration can look like
use tracing_web::{MakeWebConsoleWriter, performance_layer};
use tracing_subscriber::fmt::format::Pretty;
use tracing_subscriber::prelude::*;
fn main() {
let fmt_layer = tracing_subscriber::fmt::layer()
.with_ansi(false) // Only partially supported across browsers
.without_time() // std::time is not available in browsers, see note below
.with_writer(MakeWebConsoleWriter::new()); // write events to the console
let perf_layer = performance_layer()
.with_details_from_fields(Pretty::default());
tracing_subscriber::registry()
.with(fmt_layer)
.with(perf_layer)
.init(); // Install these as subscribers to tracing events
todo!("write your awesome application");
}
Note: You can alternatively use .with_timer(UtcTime::rfc_3339()) with UtcTime on web targets if you enable
the wasm-bindgen feature of the time crate, for example by adding the following to your Cargo.toml.
time = { version = "0.3", features = ["wasm-bindgen"] }
License
This project is dual licensed under the MIT license and the Apache license.