#flutter #sentry
#flutter #часовой
Вопрос:
Я последовал за readme, чтобы настроить Sentry. После настройки я создал тест, который сообщает об исключении. Тест пройден, но я не вижу исключения в списке проблем Sentry.
Что может быть не так?
Репортер:
import 'package:flutter/foundation.dart';
import 'package:sentry/sentry.dart';
class ReporterModule {
final SentryClient _sentry;
final bool outputToConsole;
ReporterModule(String sentryDsn, {this.outputToConsole = true})
: _sentry = sentryDsn == null ? null : SentryClient(dsn: sentryDsn);
void reportError(FlutterErrorDetails details) {
print('dsn: ${_sentry.dsnUri}');
print('client: $_sentry');
try {
_sentry?.captureException(
exception: details.exception,
stackTrace: details.stack,
);
} catch (e) {
print('Sending report to sentry.io failed: $e');
} finally {
if (outputToConsole) FlutterError.dumpErrorToConsole(details);
}
}
}
Тест:
test('Error reporting completes.', () {
var reporter = ReporterModule(prodConfig.sentryDsn, outputToConsole: false);
reporter.reportError(FlutterErrorDetails(
exception: "test exception", stack: StackTrace.current));
});
Тестовый результат:
dsn: https://a7c87a8f13894461b8d0af95284e5bd2@o484150.ingest.sentry.io/5536982
client: SentryClient("https://o484150.ingest.sentry.io/api/5536982/store/")
Комментарии:
1. привет @polina-c ваш DSN выглядит неправильно, обязательно скопируйте правильное значение со страницы настроек Sentry, документы: docs.sentry.io/product/sentry-basics/dsn-explainer
2. я думаю, что мой DSN выглядит именно так, как вы описали. Это просто клиент. toString() выглядит по-другому. Я обновил вопрос, чтобы вы могли его увидеть.
3. DSN выглядит следующим образом: {PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}{PATH}/{PROJECT_ID} ваш пример заканчивается символом ‘/store/’, который не является частью DSN, путь /store добавляется SDK автоматически.
4. Я не понял вашей точки зрения. В тестовом выводе в конце моего сообщения я вижу, что dsn заканчивается на ‘5536982’ и ‘client. toString()’ заканчивается на ‘/store/’, что соответствует правилам, которые вы объяснили.