Spring Boot
Sentry's integration with Spring Boot supports Spring Boot 2.1.0 and above to report unhandled exceptions as well as release and registration of beans. If you're on an older version, use our legacy integration.
The sentry-spring-boot-starter
library enhances Sentry Spring to:
- manage a fine-grained configuration using
application.properties
orapplication.yaml
- automatically include the release when Spring Boot Git integration is configured
- automatically register
BeforeSendCallback
,BeforeBreadcrumbCallback
,EventProcessor
,Integration
beans
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.
If you don't already have an account and Sentry project established, head over to sentry.io, then return to this page.
Install
Sentry captures data by using an SDK within your application’s runtime.
<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
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
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:
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:
import io.sentry.Sentry;
try {
aMethodThatMightFail();
} catch(Exception e) {
Sentry.captureException(e);
}
Learn more about manually capturing an error or message, in our Usage documentation.
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.