Skip to main content
Glama
logger.ts2.02 kB
/** * Logging utility for F5 Status MCP Server */ import { config } from './config.js'; import { formatError } from './errors.js'; /** * Log levels */ export enum LogLevel { DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, } /** * Log level mapping */ const LOG_LEVEL_MAP: Record<string, LogLevel> = { debug: LogLevel.DEBUG, info: LogLevel.INFO, warn: LogLevel.WARN, error: LogLevel.ERROR, }; /** * Logger class */ export class Logger { private level: LogLevel; constructor(level: string = config.logging.level) { this.level = LOG_LEVEL_MAP[level] || LogLevel.INFO; } /** * Log debug message */ debug(message: string, meta?: unknown): void { if (this.level <= LogLevel.DEBUG) { this.log('DEBUG', message, meta); } } /** * Log info message */ info(message: string, meta?: unknown): void { if (this.level <= LogLevel.INFO) { this.log('INFO', message, meta); } } /** * Log warning message */ warn(message: string, meta?: unknown): void { if (this.level <= LogLevel.WARN) { this.log('WARN', message, meta); } } /** * Log error message */ error(message: string, error?: unknown): void { if (this.level <= LogLevel.ERROR) { const errorMessage = error ? formatError(error) : undefined; this.log('ERROR', message, errorMessage); } } /** * Internal logging method */ private log(level: string, message: string, meta?: unknown): void { const timestamp = new Date().toISOString(); const logMessage = `[${timestamp}] [${level}] ${message}`; if (meta !== undefined) { const metaString = typeof meta === 'string' ? meta : JSON.stringify(meta, null, 2); console.error(`${logMessage}\n${metaString}`); } else { console.error(logMessage); } } /** * Set log level */ setLevel(level: string): void { this.level = LOG_LEVEL_MAP[level] || LogLevel.INFO; } } /** * Default logger instance */ export const logger = new Logger();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robinmordasiewicz/f5cloudstatus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server