@yepcode/mcp-server
Version:
MCP server for YepCode
47 lines (46 loc) • 1.38 kB
JavaScript
import { isObject } from "./utils.js";
class Logger {
constructor(name = undefined, { logsToStderr = false } = {}) {
this.name = name;
this.logsToStderr = logsToStderr;
}
log(level, message, data = undefined) {
let dataOutput = undefined;
if (data) {
if (data instanceof Error) {
dataOutput = {
error: data.stack || data.message || String(data),
};
}
else if (isObject(data)) {
dataOutput = JSON.stringify(data);
}
else {
dataOutput = String(data);
}
}
const logEntry = {
time: new Date().toISOString(),
level_name: level,
message: `${this.name ? `[${this.name}] ` : ""}${message}`,
data: dataOutput,
};
const logString = JSON.stringify(logEntry);
if (this.logsToStderr || level === "ERROR") {
console.error(logString);
}
else {
console.log(logString);
}
}
error(message, error = undefined) {
this.log("error", message, error);
}
warn(message, data = undefined) {
this.log("warn", message, data);
}
info(message, data = undefined) {
this.log("info", message, data);
}
}
export default Logger;