Лучшие практики для локальной отладки при использовании Sentry в проекте Angular
Я использую Sentry в проекте Angular. Поскольку исключения не перехватываются автоматически, я использую ErrorHandler
как рекомендовано в официальной документации.
Проблемы с предоставленным фрагментом кода:
ошибки больше не отображаются в консоли JS браузера. Это можно исправить с помощью
console.error(error)
или по телефонуsuper.handleError(error)
Исходные номера строк и правильные исходные файлы.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
}
}
Я предполагаю, что это немного хакерски, и должен быть самый простой способ сделать это. Вы используете подобный рецепт?