我有一个MERN应用程序-React前端,Express / Mongoose后端-在本地运行良好。我将后端部署到Heroku,将Surge和Winston的前端不再正常运行。 那就是:尽管它在本地(本地主机)做得很完美,但它根本不写日志文件。
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
同样,令人沮丧的是,这一切都在本地完美运行。感谢您协助我们进行追踪!
答案 0 :(得分:0)
Heroku没有本地存储。使用邮件传输从服务器获取错误。或者,您可以使用Heroku服务来监视您的应用程序。像:Addons-Loggers
答案 1 :(得分:0)
const logger = winston.createLogger({
transports: [
...
// Add following code for getting logs in console as well
new winston.transports.Console(),
]
});