turbomcp_server/handlers/traits/
logging.rs

1//! Logging handler trait for processing logging requests
2
3use async_trait::async_trait;
4use turbomcp_protocol::RequestContext;
5use turbomcp_protocol::types::LogLevel;
6use turbomcp_protocol::types::{EmptyResult, LoggingCapabilities, SetLevelRequest};
7
8use crate::ServerResult;
9
10/// Logging handler trait for processing logging requests
11#[async_trait]
12pub trait LoggingHandler: Send + Sync {
13    /// Handle a log level change request
14    async fn handle(
15        &self,
16        request: SetLevelRequest,
17        ctx: RequestContext,
18    ) -> ServerResult<EmptyResult>;
19
20    /// Get current log level
21    fn current_level(&self) -> LogLevel;
22
23    /// Get logging capabilities
24    fn logging_capabilities(&self) -> LoggingCapabilities {
25        LoggingCapabilities
26    }
27}