UNPKG

@siva-sub/mcp-public-transport

Version:

A Model Context Protocol server for Singapore transport data with real-time information and routing

54 lines (53 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = void 0; class Logger { constructor() { this.logLevel = process.env.LOG_LEVEL || 'info'; } shouldLog(level) { const levels = { debug: 0, info: 1, warn: 2, error: 3, }; return levels[level] >= levels[this.logLevel]; } formatMessage(level, message, meta) { const entry = { timestamp: new Date().toISOString(), level, message, meta, }; return JSON.stringify(entry); } log(level, message, meta) { if (!this.shouldLog(level)) return; const formatted = this.formatMessage(level, message, meta); // Always use stderr to avoid interfering with MCP JSON-RPC on stdout process.stderr.write(formatted + '\n'); } debug(message, meta) { this.log('debug', message, meta); } info(message, meta) { this.log('info', message, meta); } warn(message, meta) { this.log('warn', message, meta); } error(message, error) { const meta = error instanceof Error ? { message: error.message, stack: error.stack, name: error.name } : error; this.log('error', message, meta); } } exports.logger = new Logger();