Files
galaxy/app/src/ai/mcp/logs.rs
T

39 lines
1.6 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
use std::path::PathBuf;
use simple_logger::manager::resolve_log_path;
use uuid::Uuid;
/// Per-server MCP log rotation policy.
///
/// Caps each server's on-disk log footprint at `MCP_LOG_MAX_FILE_SIZE_BYTES *
/// (1 + MCP_LOG_MAX_ROTATION)` — one active file plus the rotated tail. For
/// the chosen values that's 10 MiB × 6 = 60 MiB per MCP server, which is far
/// below the 20 GB single-server growth observed in #7723 and large enough to
/// preserve a useful debugging window for a misbehaving server.
///
/// Gated to non-wasm: the only consumer is the native MCP manager, which is
/// itself `#[cfg(not(target_family = "wasm"))]`, so these would be dead code
/// on the wasm build.
#[cfg(not(target_family = "wasm"))]
const MCP_LOG_MAX_FILE_SIZE_BYTES: u64 = 10 * 1024 * 1024;
#[cfg(not(target_family = "wasm"))]
const MCP_LOG_MAX_ROTATION: usize = 5;
pub fn relative_log_file_path_from_uuid(uuid: &Uuid) -> PathBuf {
PathBuf::from(format!("{uuid}.log"))
}
/// The path to the file where an MCP server's log gets written.
pub fn log_file_path_from_uuid(uuid: &Uuid) -> PathBuf {
resolve_log_path("mcp", relative_log_file_path_from_uuid(uuid))
}
/// Rotation policy applied to every MCP server log writer. Returns `None` only
/// if a future change accidentally sets one of the cap constants to zero;
/// callers can treat `None` as "rotation disabled" and the existing
/// truncate-on-create behavior is preserved.
#[cfg(not(target_family = "wasm"))]
pub fn mcp_log_rotation_config() -> Option<simple_logger::RotationConfig> {
simple_logger::RotationConfig::new(MCP_LOG_MAX_FILE_SIZE_BYTES, MCP_LOG_MAX_ROTATION)
}