Молча сообщать об ошибках в Papertrail
Я работаю с большим приложением Node.js на Heroku, при этом ведение журнала поддерживается Papertrail. У меня есть центральная функция обработки и регистрации ошибок, которая в данный момент просто записывает ошибку на консоль, отображает общий текст "Произошла ошибка!" диалоговое окно и перенаправляет клиента на определенную страницу (в зависимости от того, где произошла ошибка). Но ни Papertrail, ни Heroku не обнаруживают это как настоящую ошибку, и я не получаю никаких уведомлений или предупреждений, если и когда они происходят.
На данный момент это моя функция:
utilities.errorLogger = (err) => {
console.error(err);
};
Я попытался выдать ошибку, которая работает как показано ниже:
utilities.errorLogger = (err) => {
throw new Error(err);
};
Но тогда ошибка отображается клиенту, а не перенаправляется, оставляя конечного пользователя в замешательстве. Аналогично, помещение ошибки в блок try-catch ничего не меняет по сравнению с тем, что у меня есть (ошибка регистрируется, но не фиксируется Papertrail или Heroku).
utilities.errorLogger = (err) => {
try {
throw new Error(err);
}
catch (err) {
console.error(err);
}
};
Как я могу молча выдать ошибку, чтобы Papertrail и Heroku обнаружили ее и считали ошибкой, не отправляя ошибку клиенту? Я хотел бы иметь возможность скрытно обрабатывать ошибки и отправлять отчеты в фоновом режиме, а не отправлять какие-либо подробности ошибки клиенту.
1 ответ
Закончилось выяснением ответа. Я использую KeystoneJS, который поставляется с обработчиком ошибок по умолчанию, которого я раньше не видел; Я изменил его сейчас, чтобы просто перенаправлять людей, сохраняя возможность регистрировать ошибку.