feat(log): specify span events + doc fixes

This commit is contained in:
Christoph J. Scherr 2024-09-07 23:47:06 +02:00
parent 3bf60f86b1
commit 5b0c82cf2b
2 changed files with 16 additions and 4 deletions

View File

@ -17,7 +17,7 @@ pub enum Error {
/// Could not assign logger as the global default /// Could not assign logger as the global default
#[error("Could not assign logger as global default")] #[error("Could not assign logger as global default")]
SetGlobalDefaultFail(#[from] SetGlobalDefaultError), SetGlobalDefaultFail(#[from] SetGlobalDefaultError),
/// any other error type, wrapped in [anyhow::Error](anyhow::Error) /// any other error type, wrapped in [anyhow::Error]
#[error(transparent)] #[error(transparent)]
Other(#[from] anyhow::Error), Other(#[from] anyhow::Error),
} }

View File

@ -61,7 +61,7 @@ static INITIALIZED: AtomicBool = AtomicBool::new(false);
/// # } /// # }
/// ///
/// ``` /// ```
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] #[derive(PartialEq, Eq, PartialOrd, Ord, Debug)]
#[allow(clippy::struct_excessive_bools)] // it's just true/false values, not states, and I don't #[allow(clippy::struct_excessive_bools)] // it's just true/false values, not states, and I don't
// need to reinvent the wheel // need to reinvent the wheel
pub struct LoggerBuilder { pub struct LoggerBuilder {
@ -94,6 +94,8 @@ pub struct LoggerBuilder {
show_time: bool, show_time: bool,
/// show timestamps as uptime (duration since the logger was initialized) /// show timestamps as uptime (duration since the logger was initialized)
uptime: bool, uptime: bool,
/// log when span things happen
span_events: FmtSpan,
} }
impl LoggerBuilder { impl LoggerBuilder {
@ -143,7 +145,7 @@ impl LoggerBuilder {
.with_thread_ids(self.display_thread_ids) .with_thread_ids(self.display_thread_ids)
.with_line_number(self.display_line_number) .with_line_number(self.display_line_number)
.with_thread_names(self.display_thread_names) .with_thread_names(self.display_thread_names)
.with_span_events(FmtSpan::FULL); .with_span_events(self.span_events);
// HACK: somehow find a better solution for this // HACK: somehow find a better solution for this
// I know this is hacky, but I couldn't get it any other way. I couldn't even find a // I know this is hacky, but I couldn't get it any other way. I couldn't even find a
// project that could do it any other way. You can't apply one after another, because the // project that could do it any other way. You can't apply one after another, because the
@ -347,6 +349,15 @@ impl LoggerBuilder {
self.max_level = max_level; self.max_level = max_level;
self self
} }
/// set how span events are handled
///
/// Default: [`FmtSpan::NONE`]
#[must_use]
pub const fn span_events(mut self, span_events: FmtSpan) -> Self {
self.span_events = span_events;
self
}
} }
impl Default for LoggerBuilder { impl Default for LoggerBuilder {
@ -365,11 +376,12 @@ impl Default for LoggerBuilder {
pretty: false, pretty: false,
show_time: true, show_time: true,
uptime: false, uptime: false,
span_events: FmtSpan::NONE,
} }
} }
} }
/// ## Logger for [`pt`](libpt) /// ## Logger for `libpt`
/// ///
/// A logger is generally a functionality that let's you write information from your library or /// A logger is generally a functionality that let's you write information from your library or
/// application in a more structured manner than if you just wrote all information to `stdout` or /// application in a more structured manner than if you just wrote all information to `stdout` or