Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/worldsender/tracing-web

A tracing subscriber for the web
https://github.com/worldsender/tracing-web

debugging-tool logging webassembly

Last synced: 3 months ago
JSON representation

A tracing subscriber for the web

Awesome Lists containing this project

README

        

## tracing-web

A [`tracing`] compatible subscriber layer for web platforms.

[![Crates.io][crates-badge]][crates-url]
[![Documentation][docs-badge]][docs-url]
[![MIT licensed][mit-badge]][mit-url]
[![Apache licensed][apache-badge]][apache-url]

[Documentation][docs-url]

[`tracing`]: https://crates.io/crates/tracing
[crates-badge]: https://img.shields.io/crates/v/tracing-web.svg
[crates-url]: https://crates.io/crates/tracing-web
[docs-badge]: https://docs.rs/tracing-web/badge.svg
[docs-url]: https://docs.rs/tracing-web
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: LICENSE-MIT
[apache-badge]: https://img.shields.io/badge/license-Apache-blue.svg
[apache-url]: LICENSE-APACHE

# 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

```rust
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`.

```toml
time = { version = "0.3", features = ["wasm-bindgen"] }
```

[`tracing-subscriber`]: https://crates.io/crates/tracing-subscriber
[Performance API]: https://developer.mozilla.org/en-US/docs/Web/API/Performance
[`UtcTime`]: https://docs.rs/tracing-subscriber/0.3.18/tracing_subscriber/fmt/time/struct.UtcTime.html

# License

This project is dual licensed under the [MIT license] and the [Apache license].

[MIT license]: LICENSE-MIT
[Apache license]: LICENSE-APACHE