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
//! Null logger.
use slog::{Discard, Logger};

use {Build, Config, Result};

/// Null logger builder.
///
/// This will create a logger which discards all log records.
#[derive(Debug)]
pub struct NullLoggerBuilder;
impl Build for NullLoggerBuilder {
    fn build(&self) -> Result<Logger> {
        let logger = Logger::root(Discard, o!());
        Ok(logger)
    }
}

/// The configuration of `NullLoggerBuilder`.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NullLoggerConfig {}
impl Config for NullLoggerConfig {
    type Builder = NullLoggerBuilder;
    fn try_to_builder(&self) -> Result<Self::Builder> {
        Ok(NullLoggerBuilder)
    }
}