Уинстон не пишет журналы для моего приложения Heroku MERN, хотя локально работает нормально - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть приложение MERN - React-интерфейс, Express / Mongoose, - которое отлично работает локально. Я развернул бэкэнд в Heroku, интерфейс Surge и Winston перестал работать правильно. То есть: он вообще не записывает файлы журнала, хотя делает это локально (localhost).

Версией Node на Heroku является 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

Опять же, расстраивает то, что все работает идеально локально. Спасибо за любую помощь в отслеживании этого!

1 Ответ

0 голосов
/ 10 сентября 2018

Героку не имеет локального хранилища. Используйте почтовый транспорт для получения ошибок с сервера. Или Вы можете использовать сервисы Heroku для мониторинга вашего приложения. Нравится: Аддоны-логгеры

...