// logger.js
|
const winston = require('winston');
|
|
const logger = winston.createLogger({
|
level: process.env.LOG_LEVEL || 'info',
|
format: winston.format.combine(
|
winston.format.timestamp(),
|
winston.format.printf(({ timestamp, level, message, ...meta }) => {
|
const metaStr = Object.keys(meta).length ? JSON.stringify(meta) : '';
|
return `${timestamp} [${level.toUpperCase().padEnd(7)}] ${message} ${metaStr}`.trim();
|
})
|
),
|
transports: [
|
new winston.transports.Console(),
|
new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
|
new winston.transports.File({ filename: 'logs/access.log' })
|
]
|
});
|
|
module.exports = logger;
|