logforth

Function builder

Source
pub fn builder() -> Builder
Expand description

Creates a new empty Builder instance for configuring log dispatching.

ยงExamples

use logforth::append;

let builder = logforth::builder()
    .dispatch(|d| d.append(append::Stderr::default()))
    .apply();
Examples found in repository?
examples/json_stdout.rs (line 19)
18
19
20
21
22
23
24
25
fn main() {
    logforth::builder()
        .dispatch(|d| d.append(append::Stdout::default().with_layout(JsonLayout::default())))
        .apply();

    log::info!("This is an info message.");
    log::debug!("This debug message will not be printed by default.");
}
More examples
Hide additional examples
examples/multiple_dispatches.rs (line 19)
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
fn main() {
    logforth::builder()
        .dispatch(|d| {
            d.filter(LevelFilter::Error)
                .append(append::Stderr::default())
        })
        .dispatch(|d| {
            d.filter(LevelFilter::Info)
                .append(append::Stdout::default())
        })
        .apply();

    log::error!("Hello error!");
    log::warn!("Hello warn!");
    log::info!("Hello info!");
    log::debug!("Hello debug!");
    log::trace!("Hello trace!");
}
examples/syslog.rs (line 23)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
fn main() {
    let syslog_writer = SyslogWriter::tcp_well_known().unwrap();
    let (non_blocking, _guard) = syslog::non_blocking(syslog_writer).finish();

    logforth::builder()
        .dispatch(|d| {
            d.filter(log::LevelFilter::Trace)
                .append(Syslog::new(non_blocking))
        })
        .apply();

    let repeat = 1;

    for i in 0..repeat {
        log::error!("Hello syslog error!");
        log::warn!("Hello syslog warn!");
        log::info!("Hello syslog info!");
        log::debug!("Hello syslog debug!");
        log::trace!("Hello syslog trace!");

        if i + 1 < repeat {
            std::thread::sleep(std::time::Duration::from_secs(10));
        }
    }
}
examples/custom_layout_filter.rs (line 21)
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
fn main() {
    logforth::builder()
        .dispatch(|d| {
            d.filter(CustomFilter::new(|metadata| {
                if metadata.level() < log::Level::Info {
                    FilterResult::Accept
                } else {
                    FilterResult::Reject
                }
            }))
            .append(
                append::Stdout::default().with_layout(CustomLayout::new(|record| {
                    Ok(format!("[Alert] {}", record.args()).into_bytes())
                })),
            )
        })
        .apply();

    log::error!("Hello error!");
    log::warn!("Hello warn!");
    log::info!("Hello info!");
    log::debug!("Hello debug!");
    log::trace!("Hello trace!");
}
examples/rolling_file.rs (line 30)
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
fn main() {
    let rolling_writer = RollingFileWriter::builder()
        .rotation(Rotation::Daily)
        .filename_prefix("app_log")
        .build("logs")
        .unwrap();

    let (non_blocking, _guard) = rolling_file::non_blocking(rolling_writer).finish();

    logforth::builder()
        .dispatch(|d| {
            d.filter(log::LevelFilter::Trace)
                .append(RollingFile::new(non_blocking).with_layout(JsonLayout::default()))
        })
        .apply();

    let repeat = 1;

    for i in 0..repeat {
        log::error!("Hello error!");
        log::warn!("Hello warn!");
        log::info!("Hello info!");
        log::debug!("Hello debug!");
        log::trace!("Hello trace!");

        if i + 1 < repeat {
            std::thread::sleep(std::time::Duration::from_secs(10));
        }
    }
}