const { createLogger, format, transports } = require("winston");
require("winston-daily-rotate-file");
const customFormat = format.combine(
format.splat(),//占位符
format.simple(),
format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
format.align(),
format.printf((i) => `${[i.timestamp]}: ${i.level}: ${i.message}`)
);
const defaultOptions = {
format: customFormat,
datePattern: "YYYY-MM-DD",
zippedArchive: true,
maxSize: "20m",
maxFiles: "14d",
};
const globalLogger = createLogger({
format: customFormat,
transports: [
new transports.DailyRotateFile({
filename: "logs/info-%DATE%.log",
level: "info",
...defaultOptions,
}),
new transports.DailyRotateFile({
filename: "logs/error-%DATE%.log",
level: "error",
...defaultOptions,
}),
],
});
const authLogger = createLogger({
transports: [
new transports.DailyRotateFile({
filename: "logs/authLog-%DATE%.log",
...defaultOptions,
}),
],
});
module.exports = {
globalLogger: globalLogger,
authLogger: authLogger,
};
使用
const { globalLogger } = require(“…/config/log.config.js”);
globalLogger.info(“Tutorial routes initialized, a=%d”, a);
globalLogger.error(“Tutorial routes initialized failed”);
globalLogger.info(‘test message %d—%s’, 123, ‘456’);