JVM & .NET
For agents: paste the DSN from
list_keysinto 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.