datadoghq 0.2.2

Datadog APM-compatible tracer and logger
Documentation
use log::Level;

pub struct LoggingConfig {
    level: Level,
    time_format: String,
    mod_filter: Vec<String>,
    body_filter: Vec<String>,
}

impl Default for LoggingConfig {
    fn default() -> Self {
        LoggingConfig {
            level: Level::Trace,
            time_format: "%Y-%m-%d %H:%M:%S%z".to_owned(),
            mod_filter: vec!["hyper".to_owned(), "mime".to_owned()],
            body_filter: Vec::default(),
        }
    }
}

impl LoggingConfig {
    #[must_use]
    pub fn new(
        level: Level,
        time_format: String,
        mod_filter: Vec<String>,
        body_filter: Vec<String>,
    ) -> Self {
        LoggingConfig {
            level,
            time_format,
            mod_filter,
            body_filter,
        }
    }
    #[must_use]
    pub fn level(&self) -> Level {
        self.level
    }
    #[must_use]
    pub fn time_format(&self) -> &str {
        &self.time_format
    }
    #[must_use]
    pub fn mod_filter(&self) -> &[String] {
        &self.mod_filter
    }
    #[must_use]
    pub fn body_filter(&self) -> &[String] {
        &self.body_filter
    }
}