Лучшие практики для локальной отладки при использовании Sentry в проекте Angular

Я использую Sentry в проекте Angular. Поскольку исключения не перехватываются автоматически, я использую ErrorHandler как рекомендовано в официальной документации.

Проблемы с предоставленным фрагментом кода:

  1. ошибки больше не отображаются в консоли JS браузера. Это можно исправить с помощью console.error(error)или по телефону super.handleError(error)

  2. Исходные номера строк и правильные исходные файлы.ts больше не отображаются после использования вышеуказанного исправления. Другой пользователь сообщил о похожей проблеме, которая, похоже, не была решена.
    После расследования кажется, что Sentry.captureException() скрыть некоторые исключения из консоли JS браузера. Решением было бы не вызывать его на локальных серверах и серверах разработки.

Я был удивлен, что не нашел больше информации об этом в официальной документации. Большинство вопросов связано с прежним SDK, который устарел.
Ниже мое предложение. Это позволяет нам видеть все сообщения об исключениях в режиме разработки.

@Injectable()
export class SentryErrorHandler extends ErrorHandler {
    constructor() {
        super();
    }
    handleError(error) {
        if (environment.production) // Sentry.captureException() may hide some errors
            Sentry.captureException(error.originalError || error);
        super.handleError(error); // That way, we display the errors in the console
    }
}

Я предполагаю, что это немного хакерски, и должен быть самый простой способ сделать это. Вы используете подобный рецепт?

0 ответов

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