First update.
This commit is contained in:
33
logger.js
Normal file
33
logger.js
Normal file
@@ -0,0 +1,33 @@
|
||||
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;
|
Reference in New Issue
Block a user