File: entry_numbers.rs

package info (click to toggle)
rust-flexi-logger 0.29.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,084 kB
  • sloc: makefile: 2
file content (32 lines) | stat: -rw-r--r-- 811 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use flexi_logger::{DeferredNow, FlexiLoggerError, Logger};
use log::*;
use std::sync::atomic::{AtomicU32, Ordering};

// Produces
//      1 INFO [entry_numbers] first
//      2 WARN [entry_numbers] second
//      3 ERROR [entry_numbers] third
fn main() -> Result<(), FlexiLoggerError> {
    Logger::try_with_str("info")?.format(my_format).start()?;

    info!("first");
    warn!("second");
    error!("third");
    Ok(())
}

pub fn my_format(
    w: &mut dyn std::io::Write,
    _now: &mut DeferredNow,
    record: &Record,
) -> Result<(), std::io::Error> {
    static LINE: AtomicU32 = AtomicU32::new(1);
    write!(
        w,
        "{:>6} {} [{}] {}",
        LINE.fetch_add(1, Ordering::Relaxed),
        record.level(),
        record.module_path().unwrap_or("<unnamed>"),
        record.args()
    )
}