logger.js•1.04 kB
const winston = require('winston');
const path = require('path');
const fs = require('fs');
// 确保日志目录存在
const logDir = 'logs';
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
// 日志格式
const logFormat = winston.format.combine(
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} - ${level.toUpperCase()}: ${message}`;
})
);
// 创建日志记录器
const logger = winston.createLogger({
level: process.env.LOG_LEVEL || 'info',
format: logFormat,
transports: [
// 控制台输出
new winston.transports.Console(),
// 文件输出
new winston.transports.File({
filename: path.join(logDir, 'app.log'),
maxsize: 5242880, // 5MB
maxFiles: 5
}),
// 错误文件输出
new winston.transports.File({
filename: path.join(logDir, 'error.log'),
level: 'error',
maxsize: 5242880, // 5MB
maxFiles: 5
})
]
});
module.exports = logger;