///|
/// Log severity level (RFC 5424 syslog ordering, low to high).
pub(all) enum LogLevel {
LevelDebug
LevelInfo
LevelNotice
LevelWarning
LevelError
LevelCritical
LevelAlert
LevelEmergency
} derive(Debug, Eq)
///|
/// Convert a [LogLevel] to its JSON string representation.
pub fn LogLevel::to_string(self : LogLevel) -> String {
match self {
LevelDebug => "debug"
LevelInfo => "info"
LevelNotice => "notice"
LevelWarning => "warning"
LevelError => "error"
LevelCritical => "critical"
LevelAlert => "alert"
LevelEmergency => "emergency"
}
}
///|
/// A log message notification sent from server to client.
pub(all) struct LogMessage {
level : LogLevel
logger : String?
data : Json
} derive(Debug, Eq)
///|
/// Encode a [LogMessage] to a JSON notification params object.
pub fn LogMessage::to_json(self : LogMessage) -> Json {
let obj : Map[String, Json] = Map([])
obj["level"] = Json::string(self.level.to_string())
match self.logger {
Some(l) => obj["logger"] = Json::string(l)
None => ()
}
obj["data"] = self.data
Json::object(obj)
}