Skip to main content
Glama
cbunting99

MCP Code Analysis & Quality Server

by cbunting99
Logger.ts1.77 kB
// Copyright 2025 Chris Bunting // Brief: Logger utility for Static Analysis MCP Server // Scope: Provides logging functionality with different levels import { LogLevel } from '@mcp-code-analysis/shared-types'; export class Logger { 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)) { process.stderr.write(this.formatMessage(LogLevel.DEBUG, message, ...args) + '\n'); } } info(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.INFO)) { process.stderr.write(this.formatMessage(LogLevel.INFO, message, ...args) + '\n'); } } warn(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.WARN)) { process.stderr.write(this.formatMessage(LogLevel.WARN, message, ...args) + '\n'); } } error(message: string, ...args: any[]): void { if (this.shouldLog(LogLevel.ERROR)) { process.stderr.write(this.formatMessage(LogLevel.ERROR, message, ...args) + '\n'); } } setLogLevel(level: LogLevel): void { this.logLevel = level; } getLogLevel(): LogLevel { return this.logLevel; } }

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