console-subscriber 0.4.1

A `tracing-subscriber::Layer` for collecting Tokio console telemetry.
Documentation
use std::sync::Arc;
use std::time::Duration;
use tokio::{sync::Mutex, task};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
    console_subscriber::init();
    task::Builder::default()
        .name("main-task")
        .spawn(async move {
            let count = Arc::new(Mutex::new(0));
            for i in 0..5 {
                let my_count = Arc::clone(&count);
                let task_name = format!("increment-{}", i);
                tokio::task::Builder::default()
                    .name(&task_name)
                    .spawn(async move {
                        for _ in 0..10 {
                            let mut lock = my_count.lock().await;
                            *lock += 1;
                            tokio::time::sleep(Duration::from_secs(1)).await;
                        }
                    })
                    .unwrap();
            }

            while *count.lock().await < 50 {}
        })
        .unwrap()
        .await?;

    Ok(())
}