【问题标题】:How to create multiple log files and append logs in that file using winston library如何使用 winston 库创建多个日志文件并在该文件中附加日志
【发布时间】:2019-01-03 22:46:47
【问题描述】:

我在节点中使用 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');

它应该以这个文件名记录文件。如果文件不存在,它会创建它并附加该文件中的所有内容

【问题讨论】:

标签: node.js winston


【解决方案1】:

您在这里尝试实现的是通过指定文件名动态创建日志文件。

这是不可能,因为我们必须在 winston.js 文件中实例化记录器实例时声明文件和记录器选项。

这里:

module.exports = logger = winston.createLogger({}

而且你不能在旅途中更新它!

希望我已经清除了你的想法!

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多