33 lines
876 B
JavaScript
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;
|