Я хочу передать вывод из morgan
пакета регистрации в winston
регистратор. В сети есть приличное количество статей, как это сделать, как показано ниже:
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
https://www.loggly.com/docs/node-express-js-morgan-logging/
Также на аналогичный вопрос есть ответ на SO - https://stackoverflow.com/a/28824464/11760800
Это работает . Но я не могу понять, КАК именно это работает.
По документации Моргана:
stream: выходной поток для записи строк журнала.
Примеры в ссылках выше предлагают следующие варианты:
- Добавить в 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
? Должно ли это что-то значить? Важны ли здесь названия?
Буду благодарен за любые разъяснения по этому вопросу.
Спасибо!