use tracing::Level;
pub const LOGGING_SYMBOL: &str = "» ";
#[derive(Debug, PartialEq, Eq)]
pub struct Logging {
level: Level,
app_name: &'static str,
}
impl Logging {
pub fn new(app_name: &'static str) -> Self {
Logging {
level: Level::INFO,
app_name,
}
}
pub fn with_level(mut self, level: Level) -> Self {
self.level = level;
self
}
pub fn log(self, message: &str) {
match self.level {
Level::DEBUG => tracing::debug!("{}{}{}", self.app_name, LOGGING_SYMBOL, message),
Level::ERROR => tracing::error!("{}{}{}", self.app_name, LOGGING_SYMBOL, message),
Level::INFO => tracing::info!("{}{}{}", self.app_name, LOGGING_SYMBOL, message),
Level::TRACE => tracing::trace!("{}{}{}", self.app_name, LOGGING_SYMBOL, message),
Level::WARN => tracing::warn!("{}{}{}", self.app_name, LOGGING_SYMBOL, message),
}
}
}