Я пытаюсь найти способ отловить все ошибки в моем проекте и сохранить их в базе данных, а также в файл журнала. Я создал следующее промежуточное программное обеспечение, которое помогает мне в этом, но единственная проблема, с которой я сталкиваюсь при использовании winston, заключается в том, что после обработки uncaughtException или unhandledRejection приложение завершается. Есть ли способ в Уинстоне избежать этого прекращения. Все, что я хочу, чтобы они были сохранены и позже удалены.
const winston = require('winston');
require('winston-mongodb');
module.exports = function () {
process.on('unhandledRejection', (ex) => {
//console.error('error', ex);
throw ex; //Find better way
});//Catching uncaught exceptions with winston. We are using both file and db.
winston.exceptions.handle([
new winston.transports.MongoDB({
db: 'mongodb://localhost/web_logs',
collection: 'exceptions',
level: 'error'
}),
new winston.transports.Console,
new winston.transports.File({filename: 'web-exceptions.log'})
]
);};
Используется в экспресс после маршрутов как
require('./middleware/exception-handler')();
Работает хорошо, как задумано, но завершает работу приложения. Как этого избежать?