Spaces:
Paused
Paused
File size: 1,866 Bytes
07436b8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
const winston = require('winston');
const DailyRotateFile = require('winston-daily-rotate-file');
const path = require('path');
winston.addColors({
error: 'red',
warn: 'yellow',
info: 'blue',
debug: 'green'
});
const uppercaseLevelFormat = winston.format((info) => {
info.level = info.level.toUpperCase();
return info;
})();
const LOG_LEVEL = process.env.LOG_LEVEL || 'info';
const LOG_FILE_PATH = path.join(__dirname, '../../log/application-%DATE%.log');
const MAX_FILES = process.env.LOG_INTERVAL_DELETION || '3d';
const log = winston.createLogger({
level: LOG_LEVEL,
format: winston.format.combine(
uppercaseLevelFormat,
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.printf(({ level, message, timestamp }) => {
return `[${timestamp}] [${level}]: ${message}`;
})
),
transports: [
new winston.transports.Console({
format: winston.format.combine(
winston.format.colorize(),
winston.format.printf(({ level, message, timestamp }) => {
return `[${timestamp}] [${level}]: ${message}`;
})
)
}),
new DailyRotateFile({
filename: LOG_FILE_PATH,
datePattern: 'YYYY-MM-DD',
maxSize: '20m',
maxFiles: MAX_FILES
})
]
});
log.exceptions.handle(
new DailyRotateFile({
filename: path.join(__dirname, '../../log/exceptions-%DATE%.log'),
datePattern: 'YYYY-MM-DD',
maxSize: '20m',
maxFiles: '30d'
})
);
process.on('unhandledRejection', (reason, promise) => {
log.error(`Unhandled Rejection at: ${promise}, reason: ${reason}`);
});
log.on('error', function (err) {
console.error('Erreur dans le logger:', err);
});
module.exports = log;
|