import winston from "winston"; import config from "config"; // Create logs directory if it doesn't exist import fs from "fs"; import path from "path"; const logDir = path.dirname(config.get("logging.file")); if (!fs.existsSync(logDir)) { fs.mkdirSync(logDir, { recursive: true }); } // Create logger instance const Logger = winston.createLogger({ level: config.get("logging.level"), format: winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json(), ), defaultMeta: { service: "nexusvoice-sbc" }, transports: [ // File transport new winston.transports.File({ filename: config.get("logging.file"), maxsize: config.get("logging.maxSize"), maxFiles: config.get("logging.maxFiles"), tailable: true, }), // Console transport for development new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.simple(), ), }), ], }); export default Logger;