Si une erreur se produit dans l'application Web (Spring cette fois), utilisez Sentry pour collecter des informations sur le système d'exploitation et le navigateur du client.
OSS qui collecte des informations d'erreur dans différents langages tels que Java, JavaScript, Ruby et C #. C'est pratique car vous pouvez récupérer le navigateur et le système d'exploitation du client exploité. De plus, vous pouvez facilement parcourir et vérifier les erreurs sur une interface graphique (écran de type Slack). Vous pouvez également notifier Slack et vous enregistrer en tant que problème dans Jira.
https://www.getsentry.com/signup/
Sélectionnez Java dans l'écran ci-dessous et créez un projet
Sélectionnez Clés client dans les paramètres du projet et copiez l'URL DSN suivante
Sentry-logback est une bibliothèque qui envoie le contenu de la sortie du journal à Sentry
pom.xml
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>1.2.0</version>
</dependency>
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.HandlerExceptionResolver;
import io.sentry.Sentry;
@SpringBootApplication
public class SentryApplication {
public static void main(String[] args) {
SpringApplication.run(SentryApplication.class, args);
Sentry.init("https://xxxxxxxxxxxxxxx@sentry.io/1202285");
}
@Bean
public HandlerExceptionResolver sentryExceptionResolver() {
return new io.sentry.spring.SentryExceptionResolver();
}
@Bean
public ServletContextInitializer sentryServletContextInitializer() {
return new io.sentry.spring.SentryServletContextInitializer();
}
}
Installez les fichiers suivants sous ressource
logback.xml
<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="Console" />
<appender-ref ref="Sentry"/>
</root>
</configuration>
Le contenu au moment de logger.error est envoyé à Sentry
@RequestMapping("/")
public String list(Model model) {
logger.error("sentry error");
return "Greetings from Spring Boot!";
}
Envoyez un e-mail d'erreur à l'adresse e-mail enregistrée par Sentry. De plus, les erreurs s'accumulent dans les projets Sentry
Il est possible d'établir un lien avec Slack à partir de l'écran de configuration de Sentry. Fonctionne avec de nombreuses autres applications.