Files
CardServer/logger.js

33 lines
1.0 KiB
JavaScript
Raw Normal View History

2025-10-11 14:45:08 +08:00
const { createLogger, format, transports } = require('winston');
const path = require('path');
// 定义日志格式:时间戳 + 日志级别 + 消息
const logFormat = format.combine(
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
format.printf(info => {
// 把额外的参数取出来
const splat = info[Symbol.for('splat')] || [];
const msg = [info.message, ...splat].map(v =>
typeof v === 'object' ? util.inspect(v, { depth: null }) : v
).join(' ');
return `[${info.timestamp}] ${msg}`;
})
);
// 创建 logger
const logger = createLogger({
level: 'info', // 默认日志等级
format: logFormat,
transports: [
new transports.File({
filename: path.join(__dirname, 'log/app.log'), // 日志文件名
maxsize: 5 * 1024 * 1024, // 每个文件最大 5MB
maxFiles: 99, // 最多保留 5 个旧日志文件
tailable: true // 让文件轮转时顺序保持最新在最后
}),
new transports.Console() // 同时输出到控制台(可选)
]
});
module.exports = logger;