我正在节点中使用Winston库获取错误日志。现在,我要动态创建多个记录器文件。
我使用的代码是this
const fs = require("fs");
const winston = require("winston");
const logDir = "log";
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
const tsFormat = () => (new Date()).toLocaleTimeString();
module.exports = logger = winston.createLogger({
transports: [
new (winston.transports.Console)({
format: winston.format.combine(
winston.format.colorize(),
winston.format.timestamp(),
winston.format.align(),
winston.format.simple(),
),
level: 'info'
}),
new (require("winston-daily-rotate-file"))({
filename: `${logDir}/-results.log`,
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json(),
)
}),
new winston.transports.File({
filename: 'log/error.log',
level: 'error',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.simple(),
)
}),
]
});
我需要通过传递记录器调用文件名
logger.info(`Test info Log!`,'filename');
它应该以该文件名记录文件。如果文件不存在,它将创建该文件,并将所有内容附加到该文件中
答案 0 :(得分:0)
您要在此处实现的目标是通过指定文件名来动态创建日志文件。
不可能是哪个原因,因为我们必须在winston.js文件中实例化记录器实例时声明文件和记录器选项。
这里:
module.exports = logger = winston.createLogger({}
您不能随时更新它!
希望我已经清除了您的想法!