@felores/placid-mcp-server
Version:
Placid.app MCP server to list templates and generate images and videos
55 lines (54 loc) • 1.77 kB
JavaScript
export var LogLevel;
(function (LogLevel) {
LogLevel["DEBUG"] = "DEBUG";
LogLevel["INFO"] = "INFO";
LogLevel["WARN"] = "WARN";
LogLevel["ERROR"] = "ERROR";
})(LogLevel || (LogLevel = {}));
export class Logger {
context;
constructor(context = "PlacidMCP") {
this.context = context;
}
formatMessage(level, message, context) {
return {
level,
message,
timestamp: new Date().toISOString(),
context: {
...context,
service: this.context,
},
};
}
log(message) {
// In production, you might want to send this to a logging service
const formattedMessage = `[${message.timestamp}] ${message.level} [${this.context}]: ${message.message}`;
// Only log to stderr to avoid interfering with MCP protocol on stdout
console.error(formattedMessage);
if (message.context && Object.keys(message.context).length > 0) {
console.error("Context:", message.context);
}
}
debug(message, context) {
this.log(this.formatMessage(LogLevel.DEBUG, message, context));
}
info(message, context) {
this.log(this.formatMessage(LogLevel.INFO, message, context));
}
warn(message, context) {
this.log(this.formatMessage(LogLevel.WARN, message, context));
}
error(message, error, context) {
this.log(this.formatMessage(LogLevel.ERROR, message, {
...context,
error: error ? {
name: error.name,
message: error.message,
stack: error.stack,
} : undefined,
}));
}
}
// Export a default logger instance
export const logger = new Logger();