diff options
| author | rtkay123 <dev@kanjala.com> | 2026-02-01 13:33:07 +0200 |
|---|---|---|
| committer | rtkay123 <dev@kanjala.com> | 2026-02-01 13:33:07 +0200 |
| commit | ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a (patch) | |
| tree | 953f6c49f8affd667ec740a949b2d93f82b7d31b /src/config/logging.rs | |
| parent | 6a9d21bc87f8a738e14f27a1305bf04d0c4b7a0c (diff) | |
| download | sellershut-ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a.tar.bz2 sellershut-ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a.zip | |
feat: conn to db
Diffstat (limited to 'src/config/logging.rs')
| -rw-r--r-- | src/config/logging.rs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/config/logging.rs b/src/config/logging.rs new file mode 100644 index 0000000..c6cfe7f --- /dev/null +++ b/src/config/logging.rs @@ -0,0 +1,68 @@ +use clap::ValueEnum; +use serde::Deserialize; + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug, Default, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum LogLevel { + /// The "trace" level. + /// + /// Designates very low priority, often extremely verbose, information. + Trace = 0, + /// The "debug" level. + /// + /// Designates lower priority information. + #[default] + Debug = 1, + /// The "info" level. + /// + /// Designates useful information. + Info = 2, + /// The "warn" level. + /// + /// Designates hazardous situations. + Warn = 3, + /// The "error" level. + /// + /// Designates very serious errors. + Error = 4, +} + +impl From<LogLevel> for tracing::Level { + fn from(value: LogLevel) -> Self { + match value { + LogLevel::Trace => tracing::Level::TRACE, + LogLevel::Debug => tracing::Level::DEBUG, + LogLevel::Info => tracing::Level::INFO, + LogLevel::Warn => tracing::Level::WARN, + LogLevel::Error => tracing::Level::ERROR, + } + } +} + +#[cfg(test)] +mod tests { + use crate::config::logging::LogLevel; + + fn check(level: LogLevel, value: &str) { + let level = tracing::Level::from(level); + assert_eq!(level.to_string().to_lowercase(), value); + } + + #[test] + fn loglevel() { + let level = LogLevel::Trace; + check(level, "trace"); + + let level = LogLevel::Debug; + check(level, "debug"); + + let level = LogLevel::Info; + check(level, "info"); + + let level = LogLevel::Warn; + check(level, "warn"); + + let level = LogLevel::Error; + check(level, "error"); + } +} |
