Spring Boot

On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application.

Install

Sentry captures data by using an SDK within your application’s runtime.

Copied
<dependency>
    <groupId>io.sentry</groupId>
    <artifactId>sentry-spring-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>

Configure

Configuration should happen as early as possible in your application's lifecycle.

Sentry's Spring Boot integration auto-configures sentry.in-app-packages property with the package where @SpringBootApplication or @SpringBootConfiguration annotated class is located.

Provide a sentry.dsn property using either application.properties or application.yml:

application.properties
Copied
sentry.dsn=https://examplePublicKey@o0.ingest.sentry.io/0

By default, every unhandled exception is sent to Sentry, even those captured with @ExceptionHandler annotated methods. This behavior can be tuned through configuring sentry.exception-resolver-order property. For example, setting it to 2147483647 (the value of org.springframework.core.Ordered#LOWEST_PRECEDENCE) makes sure only exceptions that have not been handled by exception resolvers with higher order are sent to Sentry.

application.properties
Copied
sentry.exception-resolver-order=2147483647

We recommend using Sentry's Spring Boot integration with one of the logging framework integrations as they work together seamlessly. To use Sentry without Spring Boot, we recommend using the Sentry Spring integration.

Once this integration is configured you can also use Sentry’s static API, as shown on the usage page, to record breadcrumbs, set the current user, or manually send events, for example.

Verify

This snippet includes an intentional error, so you can test that everything is working as soon as you set it up:

Copied
import java.lang.Exception;
import io.sentry.Sentry;

try {
    throw new Exception("This is a test.");
} catch (Exception e) {
    Sentry.captureException(e);
}

Or, by manually generating an event:

In Java you can capture any exception object that you caught:

Copied
import io.sentry.Sentry;

try {
  aMethodThatMightFail();
} catch(Exception e) {
  Sentry.captureException(e);
}

To view and resolve the recorded error, log into sentry.io and open your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.

You can edit this page on GitHub.