use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct LoggingConfig {
#[serde(default)]
pub level: LogLevel,
#[serde(default)]
pub debug: bool,
pub file: Option<PathBuf>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum LogLevel {
Error,
Warn,
Info,
Debug,
Trace,
}
impl Default for LoggingConfig {
fn default() -> Self {
Self {
level: LogLevel::Warn,
debug: false,
file: None,
}
}
}
impl Default for LogLevel {
fn default() -> Self {
Self::Warn
}
}