Молча сообщать об ошибках в 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, который поставляется с обработчиком ошибок по умолчанию, которого я раньше не видел; Я изменил его сейчас, чтобы просто перенаправлять людей, сохраняя возможность регистрировать ошибку.

Другие вопросы по тегам