UNPKG

andrew-dataverse-mcp

Version:

A Model Context Protocol server for Microsoft Dataverse with comprehensive CRUD operations

58 lines (57 loc) 1.89 kB
import { getConfig } from '../config/environment.js'; export var LogLevel; (function (LogLevel) { LogLevel[LogLevel["ERROR"] = 0] = "ERROR"; LogLevel[LogLevel["WARN"] = 1] = "WARN"; LogLevel[LogLevel["INFO"] = 2] = "INFO"; LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG"; })(LogLevel || (LogLevel = {})); const logLevelMap = { error: LogLevel.ERROR, warn: LogLevel.WARN, info: LogLevel.INFO, debug: LogLevel.DEBUG, }; function getCurrentLogLevel() { // Check environment variable first (for tests), then fall back to config const envLogLevel = process.env.LOG_LEVEL?.toLowerCase(); if (envLogLevel && logLevelMap[envLogLevel] !== undefined) { return logLevelMap[envLogLevel]; } try { const config = getConfig(); return logLevelMap[config.logging.level.toLowerCase()] ?? LogLevel.INFO; } catch (error) { // If config is not initialized yet, default to INFO level return LogLevel.INFO; } } export class Logger { context; constructor(context) { this.context = context; } log(level, message, ...args) { const currentLogLevel = getCurrentLogLevel(); if (level <= currentLogLevel) { const timestamp = new Date().toISOString(); const levelName = LogLevel[level]; console.error(`[${timestamp}] [${levelName}] [${this.context}] ${message}`, ...args); } } error(message, ...args) { this.log(LogLevel.ERROR, message, ...args); } warn(message, ...args) { this.log(LogLevel.WARN, message, ...args); } info(message, ...args) { this.log(LogLevel.INFO, message, ...args); } debug(message, ...args) { this.log(LogLevel.DEBUG, message, ...args); } } // Create logger instances for different contexts export const createLogger = (context) => new Logger(context);