diff options
Diffstat (limited to 'src/logging.rs')
-rw-r--r-- | src/logging.rs | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/logging.rs b/src/logging.rs deleted file mode 100644 index ee48518..0000000 --- a/src/logging.rs +++ /dev/null @@ -1,65 +0,0 @@ -use figment::Provider; -use std::{fs::File, ops::Deref, sync::Arc}; -use tracing::metadata::LevelFilter; -use tracing_subscriber::{prelude::*, Layer}; - -pub(crate) use config::Config; -pub(crate) use error::{Error, Result}; - -pub use level::Level; - -mod config; -mod error; -mod level; - -pub struct Logging(Config); - -impl Logging { - pub fn new() -> Result<Self> { - Self::from_provider(Config::figment()) - } - - /// Extract `Config` from `provider` to construct new `Finder` - pub fn from_provider<T: Provider>(provider: T) -> Result<Self> { - Config::extract(&provider) - .map_err(Into::into) - .map(Into::into) - } - - pub fn init(&self) -> Result<()> { - let stdout_layer = tracing_subscriber::fmt::layer() - .pretty() - .with_filter(LevelFilter::from(self.level)); - - let log_layer = if self.level.is_some() { - let file = File::create(&self.path)?; - tracing_subscriber::fmt::layer() - .with_writer(Arc::new(file)) - .with_filter(LevelFilter::from(self.level)) - .into() - } else { - None - }; - - tracing_subscriber::registry() - .with(stdout_layer) - .with(log_layer) - .init(); - - Ok(()) - } -} - -impl Deref for Logging { - type Target = Config; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl From<Config> for Logging { - fn from(value: Config) -> Self { - Self(value) - } -} |