UNPKG

coreto-mcp-glpi

Version:

MCP Server para integração CORETO AI com GLPI via tools de tickets

74 lines (64 loc) 2.21 kB
import winston from 'winston' import { fileURLToPath } from 'url' import { dirname, join } from 'path' import { existsSync, mkdirSync } from 'fs' const __filename = fileURLToPath(import.meta.url) const __dirname = dirname(__filename) // Ensure logs directory exists const logsDir = join(__dirname, '../../logs') if (!existsSync(logsDir)) { mkdirSync(logsDir, { recursive: true }) } // Custom format for console output const consoleFormat = winston.format.combine( winston.format.colorize(), winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf(({ timestamp, level, message, service, ...meta }) => { const metaStr = Object.keys(meta).length ? JSON.stringify(meta, null, 2) : '' return `${timestamp} [${service || 'CORETO'}] ${level}: ${message} ${metaStr}` }) ) // File format const fileFormat = winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json() ) // Create logger const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', defaultMeta: { service: 'coreto-backend' }, transports: [ // Console transport new winston.transports.Console({ format: consoleFormat }), // Error file transport new winston.transports.File({ filename: join(logsDir, 'error.log'), level: 'error', format: fileFormat, maxsize: 5242880, // 5MB maxFiles: 5 }), // Combined file transport new winston.transports.File({ filename: join(logsDir, 'combined.log'), format: fileFormat, maxsize: 5242880, // 5MB maxFiles: 5 }) ] }) // Component-specific loggers export const createComponentLogger = (component) => { return logger.child({ component }) } // Specific loggers for main components export const gatewayLogger = createComponentLogger('gateway') export const mcpLogger = createComponentLogger('mcp-server') export const tenantLogger = createComponentLogger('tenant-manager') export const glpiLogger = createComponentLogger('glpi-connector') export const whatsappLogger = createComponentLogger('whatsapp') export const ollamaLogger = createComponentLogger('ollama') export default logger