atomr_core/event/
logging.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
4pub enum LogLevel {
5 Error,
6 Warning,
7 Info,
8 Debug,
9}
10
11#[derive(Debug, Clone)]
12pub struct LogEvent {
13 pub level: LogLevel,
14 pub source: String,
15 pub message: String,
16}
17
18impl LogEvent {
19 pub fn new(level: LogLevel, source: impl Into<String>, message: impl Into<String>) -> Self {
20 Self { level, source: source.into(), message: message.into() }
21 }
22
23 pub fn emit(&self) {
24 match self.level {
25 LogLevel::Error => tracing::error!(source = %self.source, "{}", self.message),
26 LogLevel::Warning => tracing::warn!(source = %self.source, "{}", self.message),
27 LogLevel::Info => tracing::info!(source = %self.source, "{}", self.message),
28 LogLevel::Debug => tracing::debug!(source = %self.source, "{}", self.message),
29 }
30 }
31}