use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum LoggingLevel {
Debug,
Info,
Notice,
Warning,
Error,
Critical,
Alert,
Emergency,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LogEntry {
pub level: LoggingLevel,
pub data: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
pub logger: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SetLoggingLevelRequest {
pub level: LoggingLevel,
}
impl LogEntry {
pub fn new(level: LoggingLevel, data: serde_json::Value) -> Self {
Self {
level,
data,
logger: None,
}
}
pub fn with_logger(level: LoggingLevel, data: serde_json::Value, logger: impl Into<String>) -> Self {
Self {
level,
data,
logger: Some(logger.into()),
}
}
}