use std::fs::File;
use std::io;
use tracing_subscriber::fmt;
use tracing_dedup::DeduplicatingFormatter;
fn main() -> io::Result<()> {
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();
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(())
}