reactbits-mcp-server
Version:
MCP Server for React Bits - Access 99+ React components with animations, backgrounds, and UI elements
77 lines (76 loc) • 2.4 kB
JavaScript
import winston from 'winston';
// Configure log level from environment variable
const logLevel = process.env.LOG_LEVEL || 'info';
// Create winston logger instance
const logger = winston.createLogger({
level: logLevel,
format: winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json()),
defaultMeta: { service: 'react-bits-mcp-server' },
transports: [
// Write all logs to console
new winston.transports.Console({
format: winston.format.combine(winston.format.colorize(), winston.format.simple())
}),
// Write all logs with level `error` and below to `error.log`
new winston.transports.File({
filename: 'mcp-server-error.log',
level: 'error',
format: winston.format.combine(winston.format.timestamp(), winston.format.json())
}),
// Write all logs with level `info` and below to `combined.log`
new winston.transports.File({
filename: 'mcp-server.log',
format: winston.format.combine(winston.format.timestamp(), winston.format.json())
})
]
});
// If we're not in production then log to the `console`
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
/**
* Log an info message
* @param message - The message to log
* @param meta - Additional metadata
*/
export function logInfo(message, meta) {
logger.info(message, meta);
}
/**
* Log a warning message
* @param message - The message to log
* @param meta - Additional metadata
*/
export function logWarning(message, meta) {
logger.warn(message, meta);
}
/**
* Log an error message
* @param message - The message to log
* @param error - The error object or additional metadata
*/
export function logError(message, error) {
if (error instanceof Error) {
logger.error(message, {
error: {
message: error.message,
stack: error.stack,
name: error.name
}
});
}
else {
logger.error(message, { error });
}
}
/**
* Log a debug message
* @param message - The message to log
* @param meta - Additional metadata
*/
export function logDebug(message, meta) {
logger.debug(message, meta);
}
export default logger;