tracing-dedup 0.1.0

tokio.rs tracing formatter that replaces repeated messages with a counter
Documentation
// Example showing deduplication with a custom writer (file output)
use std::fs::File;
use std::io;
use tracing_subscriber::fmt;
use tracing_dedup::DeduplicatingFormatter;

fn main() -> io::Result<()> {
  // Create a file to write logs to
  let log_file = File::create("output.log")?;

  tracing_subscriber::fmt()
    .event_format(DeduplicatingFormatter::new(fmt::format::Format::default()))
    .with_writer(move || log_file.try_clone().unwrap())
    .init();

  // Test it
  tracing::info!("Starting application");
  tracing::info!("Processing item");
  tracing::info!("Processing item");
  tracing::info!("Processing item");
  tracing::info!("Processing item");
  tracing::warn!("Network timeout");
  tracing::warn!("Network timeout");
  tracing::info!("Application finished");

  println!("Logs written to output.log - check the file to see deduplicated output!");

  Ok(())
}