Modifier le fichier

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éValeurDescription
sentry.dsnData Source Name permettant d'envoyer les logs vers le sentry souhaité
sentry.environmentex: dev-ksup-masterNom de l'environnement dans sentry
sentry.releaseex: 7.00.00Version de la release courrante
sentry.shutdownTimeout2000 par défautDurée en ms pour le timeout
sentry.flushTimeoutMillis15000 par défautDurée en ms pour le timeout
sentry.connectionTimeoutMillis5000 par défautDurée en ms pour le timeout
sentry.readTimeoutMillis5000 par défautDurée en ms pour le timeout
sentry.debugtrue ou false (false par défaut)Active le mode debug sur sentry
sentry.maxBreadcrumbs100 par défautNombre d'éléments présents dans le breadcrumb
sentry.sampleRatede 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.attachThreadstrue ou false (false par défaut)Défini si les threads doivent être attachés aux évènements envoyés à sentry
sentry.attachStacktracetrue ou false (false par défaut)Défini si la stack trace doit être attachée aux évènements envoyés à sentry
sentry.minimumEventLevelERROR par défautNiveau de log minimum à envoyer à sentry
sentry.minimumBreadcrumbLevelERROR par défautNiveau 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>