clickhouse-mcp
Version:
An MCP server for ClickHouse in TypeScript
91 lines • 2.39 kB
JavaScript
/**
* Simple logging utility for MCP ClickHouse.
*/
export var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
LogLevel[LogLevel["WARNING"] = 1] = "WARNING";
LogLevel[LogLevel["INFO"] = 2] = "INFO";
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
})(LogLevel || (LogLevel = {}));
export class Logger {
/**
* Creates a new logger instance.
*
* @param name - The name of the logger component
*/
constructor(name) {
this.name = name;
}
/**
* Set the global log level.
*
* @param level - The log level to set
*/
static setLogLevel(level) {
Logger.level = level;
}
/**
* Format the current timestamp for logging.
*
* @returns Formatted timestamp string
*/
getTimestamp() {
return new Date().toISOString();
}
/**
* Log a debug message.
*
* @param message - The message to log
*/
debug(message) {
if (Logger.level >= LogLevel.DEBUG) {
console.debug(`${this.getTimestamp()} - ${this.name} - DEBUG - ${message}`);
}
}
/**
* Log an info message.
*
* @param message - The message to log
*/
info(message) {
if (Logger.level >= LogLevel.INFO) {
console.info(`${this.getTimestamp()} - ${this.name} - INFO - ${message}`);
}
}
/**
* Log a warning message.
*
* @param message - The message to log
*/
warning(message) {
if (Logger.level >= LogLevel.WARNING) {
console.warn(`${this.getTimestamp()} - ${this.name} - WARNING - ${message}`);
}
}
/**
* Log an error message.
*
* @param message - The message to log
*/
error(message) {
if (Logger.level >= LogLevel.ERROR) {
console.error(`${this.getTimestamp()} - ${this.name} - ERROR - ${message}`);
}
}
}
Logger.level = LogLevel.INFO;
// Initialize from environment variable if available
if (process.env.LOG_LEVEL) {
const levelMap = {
'error': LogLevel.ERROR,
'warning': LogLevel.WARNING,
'info': LogLevel.INFO,
'debug': LogLevel.DEBUG
};
const levelName = process.env.LOG_LEVEL.toLowerCase();
if (levelName in levelMap) {
Logger.setLogLevel(levelMap[levelName]);
}
}
//# sourceMappingURL=logger.js.map