pub struct DeduplicatingFormatter<F> { /* private fields */ }Implementations§
Source§impl<F> DeduplicatingFormatter<F>
impl<F> DeduplicatingFormatter<F>
Sourcepub fn new(inner: F) -> Self
pub fn new(inner: F) -> Self
Examples found in repository?
examples/simple.rs (line 7)
2fn main() {
3 use tracing_subscriber::fmt;
4 use tracing_dedup::DeduplicatingFormatter;
5
6 tracing_subscriber::fmt()
7 .event_format(DeduplicatingFormatter::new(fmt::format::Format::default()))
8 .init();
9
10 // Test it
11 tracing::info!("First message");
12 tracing::info!("First message");
13 tracing::info!("First message");
14 tracing::info!("Different message");
15 tracing::info!("Different message");
16 tracing::warn!("Warning message");
17}More examples
examples/custom_writer.rs (line 12)
7fn main() -> io::Result<()> {
8 // Create a file to write logs to
9 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 // Test it
17 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}Trait Implementations§
Source§impl<S, N, F> FormatEvent<S, N> for DeduplicatingFormatter<F>where
S: Subscriber + for<'a> LookupSpan<'a>,
N: for<'a> FormatFields<'a> + 'static,
F: FormatEvent<S, N>,
impl<S, N, F> FormatEvent<S, N> for DeduplicatingFormatter<F>where
S: Subscriber + for<'a> LookupSpan<'a>,
N: for<'a> FormatFields<'a> + 'static,
F: FormatEvent<S, N>,
Source§fn format_event(
&self,
ctx: &FmtContext<'_, S, N>,
writer: Writer<'_>,
event: &Event<'_>,
) -> Result
fn format_event( &self, ctx: &FmtContext<'_, S, N>, writer: Writer<'_>, event: &Event<'_>, ) -> Result
Auto Trait Implementations§
impl<F> !Freeze for DeduplicatingFormatter<F>
impl<F> RefUnwindSafe for DeduplicatingFormatter<F>where
F: RefUnwindSafe,
impl<F> Send for DeduplicatingFormatter<F>where
F: Send,
impl<F> Sync for DeduplicatingFormatter<F>where
F: Sync,
impl<F> Unpin for DeduplicatingFormatter<F>where
F: Unpin,
impl<F> UnsafeUnpin for DeduplicatingFormatter<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for DeduplicatingFormatter<F>where
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more