| use tracing::{instrument, warn}; |
| use tracing_subscriber::{layer::SubscriberExt, registry::Registry}; |
| use tracing_tree::HierarchicalLayer; |
| |
| fn main() { |
| let layer = HierarchicalLayer::default() |
| .with_writer(std::io::stdout) |
| .with_indent_lines(true) |
| .with_indent_amount(2) |
| .with_thread_names(true) |
| .with_thread_ids(true) |
| .with_targets(true) |
| .with_wraparound(5); |
| |
| let subscriber = Registry::default().with(layer); |
| tracing::subscriber::set_global_default(subscriber).unwrap(); |
| |
| recurse(0); |
| } |
| |
| #[instrument] |
| fn recurse(i: usize) { |
| warn!("boop"); |
| if i > 20 { |
| warn!("bop"); |
| return; |
| } else { |
| recurse(i + 1); |
| } |
| warn!("bop"); |
| } |