Pular para conteúdo

0009 — Observabilidade via sentry-logback (SentryAppender)

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-07-07 · Decidido em: 2026-07-07

Contexto. O erro só ia ao Sentry/GlitchTip por captura explícita (Sentry.captureException espalhado). O plugin io.sentry.jvm.gradle estava aplicado mas inerte (source context e auto-install desligados).

Decisão. Adotar o recipe da casa: io.sentry:sentry-logback + um SentryAppender no logback.xml (minimumEventLevel=ERROR) que captura todo log ERROR (inclui exceção não-tratada) sem tocar o negócio. O plugin io.sentry.jvm.gradle foi removido. Detalhe: observabilidade.

Consequências / trade-offs.

  • O appender não leva <dsn>: o SentryInitializer faz o Sentry.init() no start (só em prod, com SENTRY_DSN). Sem DSN o Sentry desabilita e o appender vira no-op (não spamma).
  • O GlobalExceptionHandler deixou de chamar captureException (o log.error + appender já capturam) — evita evento duplicado.
  • Capturas explícitas seguem válidas onde há semântica (ex.: origens conhecidas no XadmService).