Files
node-sbc/utils/logger.js
2025-10-09 16:37:27 +02:00

41 lines
1.0 KiB
JavaScript

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;