refactor: enhance log format by adding color when app is run in an IDE or a Terminal

This commit is contained in:
MasterAcnolo
2026-08-07 23:28:00 +02:00
committed by MasterAcnolo
parent df0952c231
commit 73aa81673b

View File

@@ -22,6 +22,31 @@ const logFormat = format.combine(
format.printf(({ timestamp, level, message }) => `${timestamp} | ${level.toUpperCase()} | ${message}`) format.printf(({ timestamp, level, message }) => `${timestamp} | ${level.toUpperCase()} | ${message}`)
); );
/**
* Format used by the saved file
* @type {Format}
*/
const fileFormat = format.combine(
format.timestamp({format: "YYYY-MM-DD HH:mm:ss"}),
format.errors({stack: true}), // Capture la stack trace complète des erreurs
format.printf(({timestamp, level, message, stack}) => {
return `${timestamp} | ${level.toUpperCase()} | ${stack || message}`;
})
);
/**
* Formated used by the IDE/Console
* @type {Format}
*/
const consoleFormat = format.combine(
format.colorize({all: true}),
format.timestamp({format: "HH:mm:ss"}),
format.errors({stack: true}),
format.printf(({timestamp, level, message, stack}) => {
return `[${timestamp}] ${level}: ${stack || message}`;
})
);
/** /**
* Logger Instance with differents types * Logger Instance with differents types
* - info * - info
@@ -33,7 +58,6 @@ const logFormat = format.combine(
*/ */
const logger = createLogger({ const logger = createLogger({
level: "info", level: "info",
format: logFormat,
transports: [ transports: [
new DailyRotateFile({ new DailyRotateFile({
dirname: logDir, dirname: logDir,
@@ -41,11 +65,11 @@ const logger = createLogger({
datePattern: "YYYY-MM-DD", datePattern: "YYYY-MM-DD",
zippedArchive: false, zippedArchive: false,
maxFiles: "7d", maxFiles: "7d",
format: logFormat, format: fileFormat,
options: { flags: "a" }, options: { flags: "a" },
}), }),
new transports.Console({ new transports.Console({
format: logFormat, format: consoleFormat,
}), }),
], ],
}); });
@@ -57,7 +81,7 @@ function logSessionStart(logDir, downloadPath) {
logger.info(`--- Starting session: ${new Date().toISOString()} ---`); logger.info(`--- Starting session: ${new Date().toISOString()} ---`);
logger.info("============================================================") logger.info("============================================================")
logger.info(`Application Version: ${config.version}`) logger.info(`Application Version: ${config.version}`)
logSystemInfo(logger, logDir, downloadPath) if (typeof logSystemInfo === 'function') logSystemInfo(logger, logDir, downloadPath);
} }
/** /**