appender_test.rs 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. use tracing::{info};
  2. use tracing_subscriber::{fmt};
  3. use tracing_subscriber::prelude::*;
  4. use std::io;
  5. #[tokio::test]
  6. async fn appender_test() {
  7. let file_appender = tracing_appender::rolling::daily("./logs", "tracing.log");
  8. let (non_blocking, _) = tracing_appender::non_blocking(file_appender);
  9. let fmt_layer = fmt::layer()
  10. .with_target(false)
  11. .with_level(true)
  12. .with_writer(io::stdout);
  13. let file_layer = fmt::layer()
  14. .with_target(true)
  15. .with_ansi(false)
  16. .with_level(true)
  17. .with_writer(non_blocking.clone());
  18. let subscriber = tracing_subscriber::Registry::default()
  19. .with(fmt_layer)
  20. .with(file_layer)
  21. .with(tracing_subscriber::EnvFilter::new("info"));
  22. let _ = tracing::subscriber::set_global_default(subscriber);
  23. let number = 42;
  24. info!(answer = number, "the answer to life, the universe, and everything");
  25. // 使 main 函数“等待”一段时间,增大日志被正确写入的机会
  26. tokio::time::sleep(std::time::Duration::from_secs(10)).await;
  27. }