Class: ModelContextProtocol::Server::ServerLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/model_context_protocol/server/server_logger.rb

Defined Under Namespace

Classes: StdoutNotAllowedError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logdev: $stderr, level: Logger::INFO, formatter: nil, progname: "MCP-Server") ⇒ ServerLogger

Returns a new instance of ServerLogger.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/model_context_protocol/server/server_logger.rb', line 13

def initialize(logdev: $stderr, level: Logger::INFO, formatter: nil, progname: "MCP-Server")
  super(logdev)
  @configured_logdev = logdev

  self.level = level
  self.progname = progname

  self.formatter = formatter || proc do |severity, datetime, progname, msg|
    timestamp = datetime.strftime("%Y-%m-%d %H:%M:%S.%3N")
    prog_name = progname ? "[#{progname}]" : ""
    mcp_context = Thread.current[:mcp_context]
    request_id = mcp_context&.dig(:jsonrpc_request_id)
    request_id_str = request_id ? " [#{request_id}]" : ""

    "[#{timestamp}] #{prog_name}#{request_id_str} #{severity}: #{msg}\n"
  end
end

Instance Attribute Details

#configured_logdevObject (readonly) Also known as: logdev

Returns the log device argument passed at construction (e.g., $stderr, File::NULL). Stored separately from Logger's internal @logdev to avoid overwriting the LogDevice object.



10
11
12
# File 'lib/model_context_protocol/server/server_logger.rb', line 10

def configured_logdev
  @configured_logdev
end