NodeJS Winston 不写入日志文件

NodeJS Winston not writing in the log file

我正在尝试使用 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 文件仍然是空的。

谢谢

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

您必须为您的 logger 添加 File 交通工具。

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