update a lot of change since a while

This commit is contained in:
2026-01-22 10:29:36 +01:00
parent a4dcb95d83
commit e1c1475f10
78 changed files with 4200 additions and 534 deletions

81
server/utils/logger.js Normal file
View File

@@ -0,0 +1,81 @@
import winston from 'winston';
import DailyRotateFile from 'winston-daily-rotate-file';
const { createLogger, format, transports } = winston;
const { combine, timestamp, label, printf } = format;
const myFormatFile = printf((info) => {
const { level, message, timestamp, ...meta } = info;
const label = meta.label || 'toto';
delete meta.label; // pour ne pas le répéter dans le JSON
const base = `${timestamp} ${level} [${label}] ${message}`;
const metaString = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';
return base + metaString;
});
const myFormatConsole = printf(({ level, message, label, timestamp }) => {
return `${timestamp} ${level} [${label}] ${message}`;
});
const logger = winston.createLogger({
//level: 'info',
format: combine(
timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),
myFormatFile
),
defaultMeta: { service: 'user-service' },
transports: [
new DailyRotateFile({
dirname: 'logs',
filename: 'log_global-%DATE%.log',
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxFiles: '14d',
}),
],
exceptionHandlers: [
new DailyRotateFile({
dirname: 'logs',
filename: 'log_global-%DATE%.log',
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxFiles: '14d',
}),
new winston.transports.Console()
],
rejectionHandlers: [
new DailyRotateFile({
dirname: 'logs',
filename: 'log_global-%DATE%.log',
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxFiles: '14d',
}),
new winston.transports.Console()
]
});
if (process.env.ENV !== 'production' ) {
logger.add(new winston.transports.Console(
{
format: combine(
label({ label: '' }),
timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),
myFormatConsole
),
handleExceptions: true //pour afficher également les exceptions dans la console
})
);
}
/////////////////////////////////////////////////
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
/////////////////////////////////////////////////
export default logger;