turbomcp_protocol/types/
logging.rs

1//! Logging types
2//!
3//! This module contains types for MCP logging notifications.
4
5use serde::{Deserialize, Serialize};
6
7/// Log level enumeration
8#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
9#[serde(rename_all = "lowercase")]
10pub enum LogLevel {
11    /// Debug level
12    Debug,
13    /// Info level
14    Info,
15    /// Notice level
16    Notice,
17    /// Warning level
18    Warning,
19    /// Error level
20    Error,
21    /// Critical level
22    Critical,
23    /// Alert level
24    Alert,
25    /// Emergency level
26    Emergency,
27}
28
29/// Set logging level request
30#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct SetLevelRequest {
32    /// Log level to set
33    pub level: LogLevel,
34}
35
36/// Set logging level result (empty)
37#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct SetLevelResult;
39
40/// Logging notification
41#[derive(Debug, Clone, Serialize, Deserialize)]
42pub struct LoggingNotification {
43    /// Log level
44    pub level: LogLevel,
45    /// Log message
46    pub data: serde_json::Value,
47    /// Optional logger name
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub logger: Option<String>,
50}