//! Dioxus ships out-of-the-box with tracing hooks that integrate with the Dioxus-CLI. //! //! The built-in tracing-subscriber automatically sets up a wasm panic hook and wires up output //! to be consumed in a machine-readable format when running under `dx`. //! //! You can disable the built-in tracing-subscriber or customize the log level yourself. //! //! By default: //! - in `dev` mode, the default log output is `debug` //! - in `release` mode, the default log output is `info` //! //! To use the dioxus logger in your app, simply call any of the tracing functions (info!(), warn!(), error!()) use dioxus::logger::tracing::{debug, error, info, warn, Level}; use dioxus::prelude::*; fn main() { // `dioxus::logger::init` is optional and called automatically by `dioxus::launch`. // In development mode, the `Debug` tracing level is set, and in release only the `Info` level is set. // You can call it yourself manually in the cases you: // - want to customize behavior // - aren't using `dioxus::launch` (i.e. custom fullstack setups) but want the integration. // The Tracing crate is the logging interface that the dioxus-logger uses. dioxus::logger::init(Level::INFO).expect("Failed to initialize logger"); dioxus::launch(app); } fn app() -> Element { rsx! { div { h1 { "Logger demo" } button { onclick: move |_| warn!("Here's a warning!"), "Warn!" } button { onclick: move |_| error!("Here's an error!"), "Error!" } button { onclick: move |_| { debug!("Here's a debug"); warn!("The log level is set to info so there should not be a debug message") }, "Debug!" } button { onclick: move |_| info!("Here's an info!"), "Info!" } } } }