Node.js REST Service Logging - createLogger.js - 1
Fri Apr 14 2023 10:42:08 GMT+0000 (Coordinated Universal Time)
Saved by
@mindplumber
#javascript
#nodejs
const { createLogger, format, transports } = require('winston');
const { combine, timestamp, json } = format;
const getLogFileName = (category) => {
const date = new Date().toISOString().slice(0, 10);
return `logs/${category}/${category}-${date}.log`;
};
const createCategoryLogger = (category) => {
return createLogger({
level: 'info',
format: combine(timestamp(), json()),
transports: [
new transports.File({
filename: getLogFileName(category),
level: 'info',
maxsize: 1024 * 1024 * 10, // 10MB
maxFiles: 5,
tailable: true,
}),
new transports.Console({
level: 'debug',
format: format.combine(format.colorize(), format.simple()),
}),
],
});
};
module.exports = createCategoryLogger;
content_copyCOPY
In this updated version of the `createLogger.js` file, we've added the `getLogFileName` function to generate log file names with timestamps. We've also parameterized the logger setup to accept a `category` parameter and create a logger instance for that category. Finally, we've updated the logger configuration to log messages in JSON format.
Comments