turbomcp_server/handlers/traits/
logging.rs1use 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#[async_trait]
12pub trait LoggingHandler: Send + Sync {
13 async fn handle(
15 &self,
16 request: SetLevelRequest,
17 ctx: RequestContext,
18 ) -> ServerResult<EmptyResult>;
19
20 fn current_level(&self) -> LogLevel;
22
23 fn logging_capabilities(&self) -> LoggingCapabilities {
25 LoggingCapabilities
26 }
27}