NodeJS Winston 未写入日志文件

时间:2021-01-22 00:59:49

标签: node.js winston

我正在尝试使用 Winston 创建日志,但它没有写入文件。

我在controllers/myControler/myFile.js中有以下文件

const path = require('path');

const winston = require('winston');
const filename = path.join(__dirname, 'testLog.log');
const logger = winston.createLogger({
    transports: [
        new winston.transports.Console({ filename, level: 'error' })
    ]
});

exports.test = async (req, res, next) => {
   logger.log({
      level: 'error',
      message: 'Test'
   });
}

我的项目根目录中有 testLog.log 文件。

当我运行应用程序时,我可以在终端中看到:

{"level":"error","message":"Test"}

然而,testLog.log 文件仍然是空的。

谢谢

1 个答案:

答案 0 :(得分:1)

new winston.transports.Console 不接受 filename 选项。

您必须为您的 File 附加 logger 传输。

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console({ level: 'error' }),
    // new line
    new winston.transports.File({ filename, level: 'error' }),
  ]
});
相关问题