Gestion des logs
Logback
Ajout de logger dans l'appender
Modification du niveau de logs
Sentry
Prérequis
Afin d'utiliser sentry, les projets doivent ajouter les dépendances suivantes dans leur pom.xml Les versions sont gérées en dependencyManagement dans le pom parent des projets.
<!-- Fournie le support Logback pour Sentry en utilisant un appender pour envoyer les exceptions dans Sentry -->
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
</dependency>
<!-- Nécessaire pour utiliser les conditions dans les appender logback -->
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
</dependency>
Paramétrage
Deux paramètres doivent être définis pour utiliser sentry :
- sentry.dsn : dsn vers lequel les évènements sont envoyés
- sentry.environment : environement du projet
La présence du sentry.dsn est vérifiée pour activer l'appender.
Les paramètres sentry peuvent être définis
- via le fichier env.properties présent dans le dossier storage/conf :
sentry.dsn=https://mondsn
sentry.environment=dev-ksup-master
sentry.release=7.0
- via les JAVA_OPTS :
-Dsentry.dsn=https://mondsn -Dsentry.environment=dev-ksup-master -Dsentry.release=7.0
Liste des paramètres disponibles :
| Propriété | Valeur | Description |
|---|---|---|
| sentry.dsn | Data Source Name permettant d'envoyer les logs vers le sentry souhaité | |
| sentry.environment | ex: dev-ksup-master | Nom de l'environnement dans sentry |
| sentry.release | ex: 7.00.00 | Version de la release courrante |
| sentry.shutdownTimeout | 2000 par défaut | Durée en ms pour le timeout |
| sentry.flushTimeoutMillis | 15000 par défaut | Durée en ms pour le timeout |
| sentry.connectionTimeoutMillis | 5000 par défaut | Durée en ms pour le timeout |
| sentry.readTimeoutMillis | 5000 par défaut | Durée en ms pour le timeout |
| sentry.debug | true ou false (false par défaut) | Active le mode debug sur sentry |
| sentry.maxBreadcrumbs | 100 par défaut | Nombre d'éléments présents dans le breadcrumb |
| sentry.sampleRate | de 0.0 à 1.0 (1.0 par défaut) | Configure le taux d'échantillonnage des événements envoyés La valeur par défaut est 1,0, ce qui signifie que 100 % des événements sont envoyés. S'il est réglé sur 0,1, seuls 10 % des événements d'erreur seront envoyés. Les événements sont choisis au hasard. |
| sentry.attachThreads | true ou false (false par défaut) | Défini si les threads doivent être attachés aux évènements envoyés à sentry |
| sentry.attachStacktrace | true ou false (false par défaut) | Défini si la stack trace doit être attachée aux évènements envoyés à sentry |
| sentry.minimumEventLevel | ERROR par défaut | Niveau de log minimum à envoyer à sentry |
| sentry.minimumBreadcrumbLevel | ERROR par défaut | Niveau de log minimum à afficher dans le breadcrumb |
Appender Sentry
<!-- Appender pour envoyer les logs sur Sentry -->
<if condition='isDefined("sentry.dsn")'>
<then>
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<minimumEventLevel>${sentry.minimumEventLevel:-ERROR}</minimumEventLevel>
<minimumBreadcrumbLevel>${sentry.minimumBreadcrumbLevel:-ERROR}</minimumBreadcrumbLevel>
<options>
<dsn>${sentry.dsn}</dsn>
<environment>${sentry.environment:-production}</environment>
<shutdownTimeout>${sentry.shutdownTimeout:-2000}</shutdownTimeout>
<flushTimeoutMillis>${sentry.flushTimeoutMillis:-15000}</flushTimeoutMillis>
<debug>${sentry.debug:-false}</debug>
<maxBreadcrumbs>${sentry.maxBreadcrumbs:-100}</maxBreadcrumbs>
<sampleRate>${sentry.sampleRate:-1.0}</sampleRate>
<attachThreads>${sentry.attachThreads:-false}</attachThreads>
<attachStacktrace>${sentry.attachStacktrace:-false}</attachStacktrace>
<serverName>${jvmRoute:-default}</serverName>
<connectionTimeoutMillis>${sentry.connectionTimeoutMillis:-5000}</connectionTimeoutMillis>
<readTimeoutMillis>${sentry.readTimeoutMillis:-5000}</readTimeoutMillis>
<release>${sentry.release:-7.0}</release>
</options>
</appender>
</then>
</if>
<root level="INFO">
<appender-ref ref="WEBAPP-SIFING-APPENDER"/>
<if condition='isDefined("sentry.dsn")'>
<then>
<appender-ref ref="Sentry" />
</then>
</if>
</root>