libfoksalcommon 1.1.1

foksal common library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use anyhow::Result;
use std::{fs::File, path::Path};
use tracing_subscriber::{Registry, filter, prelude::*};

use crate::config::DEFAULT_LOG_FILE;

pub fn setup_logging(log_file: Option<&Path>) -> Result<()> {
    let log_file = log_file.unwrap_or(DEFAULT_LOG_FILE.as_path());
    let filter = filter::filter_fn(|data| data.target().contains("foksal"));
    let layer = tracing_subscriber::fmt::layer()
        .with_writer(File::create(log_file)?)
        .with_ansi(false)
        .with_line_number(true)
        .with_filter(filter);
    Registry::default().with(layer).init();

    Ok(())
}