custom_writer/
custom_writer.rs1use std::fs::File;
3use std::io;
4use tracing_subscriber::fmt;
5use tracing_dedup::DeduplicatingFormatter;
6
7fn main() -> io::Result<()> {
8 let log_file = File::create("output.log")?;
10
11 tracing_subscriber::fmt()
12 .event_format(DeduplicatingFormatter::new(fmt::format::Format::default()))
13 .with_writer(move || log_file.try_clone().unwrap())
14 .init();
15
16 tracing::info!("Starting application");
18 tracing::info!("Processing item");
19 tracing::info!("Processing item");
20 tracing::info!("Processing item");
21 tracing::info!("Processing item");
22 tracing::warn!("Network timeout");
23 tracing::warn!("Network timeout");
24 tracing::info!("Application finished");
25
26 println!("Logs written to output.log - check the file to see deduplicated output!");
27
28 Ok(())
29}