use tracing::{info}; use tracing_subscriber::{fmt}; use tracing_subscriber::prelude::*; use std::io; #[tokio::test] async fn appender_test() { let file_appender = tracing_appender::rolling::daily("./logs", "tracing.log"); let (non_blocking, _) = tracing_appender::non_blocking(file_appender); let fmt_layer = fmt::layer() .with_target(false) .with_level(true) .with_writer(io::stdout); let file_layer = fmt::layer() .with_target(true) .with_ansi(false) .with_level(true) .with_writer(non_blocking.clone()); let subscriber = tracing_subscriber::Registry::default() .with(fmt_layer) .with(file_layer) .with(tracing_subscriber::EnvFilter::new("info")); let _ = tracing::subscriber::set_global_default(subscriber); let number = 42; info!(answer = number, "the answer to life, the universe, and everything"); // 使 main 函数“等待”一段时间,增大日志被正确写入的机会 tokio::time::sleep(std::time::Duration::from_secs(10)).await; }