@zhangzichao2008/mcp-graphiti
Version:
Graphiti MCP Server - Temporal Knowledge Graph for AI Agents
70 lines • 2.24 kB
JavaScript
export var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
LogLevel[LogLevel["INFO"] = 1] = "INFO";
LogLevel[LogLevel["WARN"] = 2] = "WARN";
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
})(LogLevel || (LogLevel = {}));
export class Logger {
static instance;
logLevel;
constructor(logLevel = LogLevel.INFO) {
this.logLevel = logLevel;
}
static getInstance(logLevel) {
if (!Logger.instance) {
Logger.instance = new Logger(logLevel);
}
else if (logLevel !== undefined) {
// Update log level if provided
Logger.instance.setLogLevel(logLevel);
}
return Logger.instance;
}
setLogLevel(level) {
this.logLevel = level;
}
shouldLog(level) {
return level >= this.logLevel;
}
formatMessage(level, message, ...args) {
const timestamp = new Date().toISOString();
const formattedArgs = args.length > 0
? ` ${args
.map((arg) => (typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)))
.join(' ')}`
: '';
return `[${timestamp}] [${level}] ${message}${formattedArgs}`;
}
debug(message, ...args) {
if (this.shouldLog(LogLevel.DEBUG)) {
console.debug(this.formatMessage('DEBUG', message, ...args));
}
}
info(message, ...args) {
if (this.shouldLog(LogLevel.INFO)) {
console.info(this.formatMessage('INFO', message, ...args));
}
}
warn(message, ...args) {
if (this.shouldLog(LogLevel.WARN)) {
console.warn(this.formatMessage('WARN', message, ...args));
}
}
error(message, ...args) {
if (this.shouldLog(LogLevel.ERROR)) {
console.error(this.formatMessage('ERROR', message, ...args));
}
}
}
export const createLogger = (level = 'info') => {
const logLevelMap = {
debug: LogLevel.DEBUG,
info: LogLevel.INFO,
warn: LogLevel.WARN,
error: LogLevel.ERROR,
};
const logLevel = logLevelMap[level] || LogLevel.INFO;
return Logger.getInstance(logLevel);
};
//# sourceMappingURL=logger.js.map