From 73aa81673b5e6d323f5c90bb5b15cb7879158181 Mon Sep 17 00:00:00 2001 From: MasterAcnolo Date: Fri, 7 Aug 2026 23:28:00 +0200 Subject: [PATCH] refactor: enhance log format by adding color when app is run in an IDE or a Terminal --- server/logger.js | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/server/logger.js b/server/logger.js index e31e5be..5aab0ad 100644 --- a/server/logger.js +++ b/server/logger.js @@ -22,6 +22,31 @@ const logFormat = format.combine( 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 * - info @@ -33,7 +58,6 @@ const logFormat = format.combine( */ const logger = createLogger({ level: "info", - format: logFormat, transports: [ new DailyRotateFile({ dirname: logDir, @@ -41,11 +65,11 @@ const logger = createLogger({ datePattern: "YYYY-MM-DD", zippedArchive: false, maxFiles: "7d", - format: logFormat, + format: fileFormat, options: { flags: "a" }, }), new transports.Console({ - format: logFormat, + format: consoleFormat, }), ], }); @@ -57,7 +81,7 @@ function logSessionStart(logDir, downloadPath) { logger.info(`--- Starting session: ${new Date().toISOString()} ---`); logger.info("============================================================") logger.info(`Application Version: ${config.version}`) - logSystemInfo(logger, logDir, downloadPath) + if (typeof logSystemInfo === 'function') logSystemInfo(logger, logDir, downloadPath); } /**