Skip to main content

powerplatform_dataverse_client/
log.rs

1use ::log::LevelFilter;
2
3/// Logging verbosity for SDK operations.
4#[derive(Debug, Clone, Copy, serde::Serialize)]
5#[serde(rename_all = "lowercase")]
6pub enum LogLevel {
7    /// Emit error output only.
8    Error,
9    /// Emit warning and error output.
10    Warn,
11    /// Emit standard informational output.
12    Information,
13    /// Emit verbose debug output.
14    Debug,
15    /// Emit verbose trace output.
16    Trace,
17}
18
19impl LogLevel {
20    /// Convert the SDK log level to a `log` crate filter.
21    pub fn as_filter(self) -> LevelFilter {
22        match self {
23            LogLevel::Error => LevelFilter::Error,
24            LogLevel::Warn => LevelFilter::Warn,
25            LogLevel::Information => LevelFilter::Info,
26            LogLevel::Debug => LevelFilter::Debug,
27            LogLevel::Trace => LevelFilter::Trace,
28        }
29    }
30
31    /// Whether debug-style messages should be emitted by the SDK.
32    pub fn includes_debug(self) -> bool {
33        matches!(self, LogLevel::Debug | LogLevel::Trace)
34    }
35}
36
37impl Default for LogLevel {
38    /// Defaults to `Error` logging.
39    fn default() -> Self {
40        LogLevel::Error
41    }
42}