Skip to main content
Glama
cbunting99

MCP Code Analysis & Quality Server

by cbunting99
Logger.ts1.69 kB
// Copyright 2025 Chris Bunting // Brief: Logger utility for dependency analysis server // Scope: Provides logging functionality with different levels import { LoggerInterface, LogLevel } from '@mcp-code-analysis/shared-types'; export class Logger implements LoggerInterface { private logLevel: LogLevel; constructor(logLevel: LogLevel = LogLevel.INFO) { this.logLevel = logLevel; } private shouldLog(level: LogLevel): boolean { const levels = [LogLevel.DEBUG, LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR]; return levels.indexOf(level) >= levels.indexOf(this.logLevel); } private formatMessage(level: LogLevel, message: string, ...args: any[]): string { const timestamp = new Date().toISOString(); const formattedArgs = args.length > 0 ? ` ${args.map(arg => JSON.stringify(arg)).join(' ')}` : ''; return `[${timestamp}] ${level.toUpperCase()}: ${message}${formattedArgs}`; } debug(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.DEBUG)) { console.error(this.formatMessage(LogLevel.DEBUG, message, ...args)); } } info(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.INFO)) { console.log(this.formatMessage(LogLevel.INFO, message, ...args)); } } warn(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.WARN)) { console.warn(this.formatMessage(LogLevel.WARN, message, ...args)); } } error(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.ERROR)) { console.error(this.formatMessage(LogLevel.ERROR, message, ...args)); } } setLogLevel(level: LogLevel): void { this.logLevel = level; } }

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/cbunting99/mcp-code-analysis-server'

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