penguin_app/config/
logger_config.rs1use penguin_config::*;
2
3#[derive(Debug, Clone)]
4pub struct LoggerConfig {
5 pub output_path: String,
6 pub debug_message_severity: log::LevelFilter,
7}
8impl From<LoggerConfigDeserializable> for LoggerConfig {
9 fn from(x: LoggerConfigDeserializable) -> Self {
10 Self {
11 output_path: x.output_path,
12 debug_message_severity: x.debug_message_severity.into(),
13 }
14 }
15}
16
17
18#[derive(Debug, Deserialize)]
19pub struct LoggerConfigDeserializable {
20 pub output_path: String,
21 pub debug_message_severity: LogLevelFilter,
22}
23
24
25
26#[derive(Debug, Deserialize, Copy, Clone)]
29#[serde(rename_all = "lowercase")]
30pub enum LogLevelFilter {
31 Off,
32 Error,
33 Warn,
34 Info,
35 Debug,
36 Trace,
37}
38impl From<LogLevelFilter> for log::LevelFilter {
39 fn from(level: LogLevelFilter) -> Self {
40 match level {
41 LogLevelFilter::Off => Self::Off,
42 LogLevelFilter::Error => Self::Error,
43 LogLevelFilter::Warn => Self::Warn,
44 LogLevelFilter::Info => Self::Info,
45 LogLevelFilter::Debug => Self::Debug,
46 LogLevelFilter::Trace => Self::Trace,
47 }
48 }
49}