fcsc_ipi_backend/app/services/logger.js

33 lines
876 B
JavaScript

const { createLogger, format, transports } = require("winston");
const path = require("path");
require("winston-daily-rotate-file");
const logDir = path.join(__dirname, "../writable/logs");
const dailyRotateFileTransport = new transports.DailyRotateFile({
filename: path.join(logDir, "app-%DATE%.log"),
datePattern: "YYYY-MM-DD",
zippedArchive: false,
maxSize: "20m",
maxFiles: "30d", // keep logs for 30 days
});
const logger = createLogger({
level: "info",
format: format.combine(
format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
format.printf(
(info) => `${info.timestamp} [${info.level.toUpperCase()}]: ${info.message}`
)
),
transports: [
dailyRotateFileTransport,
new transports.Console({
format: format.combine(format.colorize(), format.simple()),
}),
],
exitOnError: false,
});
module.exports = logger;