Winston 没有为我的 Heroku MERN 应用程序编写日志,尽管它在本地运行良好

Winston is not writing logs for my Heroku MERN app although it works fine locally

我有一个 MERN 应用程序——React 前端,Express/Mongoose 后端——在本地运行良好。我将后端部署到 Heroku,将前端部署到 Surge 和 Winston 不再正常运行。 也就是说:它根本不写日志文件,尽管它在本地 (localhost) 做得很好。

Heroku 上的 Node 版本是 8.11.4,而本地 (MacOS) 是 10.8.0。 Heroku 是通过 https 调用的,而不是我的本地主机,即 运行 http。这些是我看到的唯一区别。

我尝试指定 __dirname,尝试删除文件夹引用(即将文件放入目录 logs,但没有任何日志文件写入任何地方。

我的记录器模块如下

const {createLogger, format, transports} = require('winston');
const {combine, timestamp, align, colorize, printf} = format;

const path = require('path')

const myFormat = printf(info => {
  return `${info.timestamp} [${info.level}: ${info.message}]`;
});


const logger = createLogger({
  level: 'debug',
  format: combine(
    colorize(),
    timestamp(),
    align(),
    myFormat
  ),
  transports: [
     new transports.File({maxsize: 500000, filename: path.join(__dirname,'logs/error.log'), level: 'error'}),
    new transports.File({maxsize: 500000, filename:  path.join(__dirname,'logs/combined.log')})
  ]
})

module.exports = logger

同样,令人沮丧的是它在本地完美运行。感谢您帮助追踪此事!

Heroku 没有本地存储。使用邮件传输从服务器获取错误。或者您可以使用 Heroku 服务来监控您的应用程序。喜欢:Addons-Loggers

const logger = winston.createLogger({
  transports: [
    ...

    // Add following code for getting logs in console as well
    new winston.transports.Console(),
  ]
});