Как журналы передаются из Morgan в Winston в Node.JS? - PullRequest
1 голос
/ 09 июля 2019

Я хочу передать вывод из morgan пакета регистрации в winston регистратор. В сети есть приличное количество статей, как это сделать, как показано ниже:

  1. https://www.digitalocean.com/community/tutorials/how-to-use-winston-to-log-node-js-applications#step-4-%E2%80%94-integrating-winston-with-our-application

  2. https://www.loggly.com/docs/node-express-js-morgan-logging/

Также на аналогичный вопрос есть ответ на SO - https://stackoverflow.com/a/28824464/11760800

Это работает . Но я не могу понять, КАК именно это работает.

По документации Моргана:

stream: выходной поток для записи строк журнала.

Примеры в ссылках выше предлагают следующие варианты:

  1. Добавить в Winston объект потока логгера с функцией write, которая будет использоваться morgan, а затем использовать его в параметрах morgan.
// file with winston logger
logger.stream = {
  write: function(message, encoding) {
    // use the 'info' log level so the output will be picked up by both transports (file and console)
    logger.info(message);
  },
};

// file with morgan logger
app.use(morgan('combined', { stream: winston.stream }));

Это РАБОТАЕТ , однако я не могу понять КАК точно это работает. Что такое winston.stream? Это объект с 1 свойством write. Почему это используется здесь? Это необходимый поток для записи? Почему у него есть свойство write? Должно ли это что-то значить? Важны ли здесь названия?

Буду благодарен за любые разъяснения по этому вопросу. Спасибо!

...