exa_observability 1.1.3 exa_observability: ^1.1.3 copied to clipboard
Project of observability
import 'dart:async';
import 'package:exa_observability/exa_observability.dart';
import 'package:flutter/material.dart';
import 'app.dart';
void main() async {
/// Inicializa o app dentro de um zone para capturar exceções
await runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
/// Inicializa o ExaObservability, trocar o runApp por ExaObservabilityRunApp
exaObservabilityRunApp(
/// Ambiente da aplicação, usar flavor ou variável de ambiente
environment: 'dev',
/// Configuração do Sentry, usar configuração do Sentry relacionado ao projeto que voce deseja enviar as exceções
/// É possivel passar um bool para escolher entre o DSN de produção ou de desenvolvimento
/// False para DSN de desenvolvimento e True para DSN de produção
dsn: ExaSegurancaObservabilityEnv.dsn(false),
/// Aqui segue o app principal normalmente
child: const MyApp(),
);
}, (
dynamic exception,
StackTrace? stack, {
dynamic reason,
Iterable<DiagnosticsNode> information = const [],
bool? printDetails,
bool fatal = false,
}) async {
/// Envia a exceção para o Sentry
ExaObservability.i.captureException(exception: exception, stack: stack);
/// Tambem é possivel ter metricas e atualizações de cada tela, para isso é necessário usar o guard feito para o Modular
/// Exemplo de uso do guard
/// Modular.to.navigate('/home', guard: [ExaGuardObservability()]);
});
}