bugwatch docs

JVM & .NET

For agents: paste the DSN from list_keys into the snippet for the platform; create the project with the matching platform id (create_project(org="acme", slug="web", name="Web", platform="springboot")). Platforms on this page: springboot, dotnet.

Both platforms are configuration-first: the Spring Boot starter reads application.properties, ASP.NET Core wires through UseSentry on the host builder. Logging frameworks (Logback/Log4j2, ILogger) become breadcrumbs and, at error level, events.

Replace https://<public_key>@ingest.bugwatch.io/<project_number> with the DSN from list_keys or the project's settings page.

Spring Boot

  • Platform id: springboot · Language: Java / Kotlin · Runs in: server
  • Install: implementation 'io.sentry:sentry-spring-boot-starter-jakarta:8.+'
  • Files: application.properties
sentry.dsn=https://<public_key>@ingest.bugwatch.io/<project_number>
sentry.traces-sample-rate=1.0
sentry.release=@project.version@
sentry.send-default-pii=false
# Report handled exceptions from @ExceptionHandler too:
sentry.exception-resolver-order=-2147483647
# Logback: capture WARN+ as breadcrumbs, ERROR as events
sentry.logging.minimum-event-level=error
sentry.logging.minimum-breadcrumb-level=info

Lifecycle notes:

  • Auto-configuration installs a HandlerExceptionResolver for MVC/WebFlux and hooks Logback/Log4j2 — no code changes.
  • Exceptions swallowed by @ControllerAdvice are only reported with exception-resolver-order set to the lowest value.
  • Async tasks (@Async, WebClient, RestTemplate) propagate the trace when using the starter's instrumented beans; @Scheduled jobs report via sentry-spring's scheduling support.
  • Enable sentry-apache-http-client-5 / sentry-jdbc for outbound HTTP and query spans.

ASP.NET Core

  • Platform id: dotnet · Language: C# · Runs in: server
  • Install: dotnet add package Sentry.AspNetCore
  • Files: Program.cs
builder.WebHost.UseSentry(o => {
    o.Dsn = "https://<public_key>@ingest.bugwatch.io/<project_number>";
    o.TracesSampleRate = 1.0;
    o.Release = typeof(Program).Assembly.GetName().Version?.ToString();
    o.MinimumEventLevel = LogLevel.Error;   // ILogger errors become events
});
app.UseSentryTracing();

Lifecycle notes:

  • UseSentry hooks the host builder: unhandled middleware exceptions, ILogger errors and request breadcrumbs are automatic.
  • Background services need SentrySdk.CaptureException in their catch blocks; hosted services inherit the DI-configured client.

Symbolication for this family

JVM and .NET stack traces are symbolic; no maps to upload. ProGuard/R8 only matters for Android — see Mobile & desktop.