Autres versions
Vous êtes ici : Installer et exploiter → Exploitation → Logs
Gestion des logs applicatifs
Informations sur les fichiers de logs et documentation de paramétrage
Cette page présente la liste des fichiers de logs générés par K-Portal ou K-Sup, et décrit les modalités de personnalisation de la configuration.
Présentation générale
K-Portal s'appuie sur l'API SLF4J et sur la librairie Logback pour gérer les logs et tracer tous les messages techniques renvoyés par l'application.Niveaux de log
Il y a 5 niveaux de log utilisables sur l'application :- ERROR : seules les erreurs sont tracées
- WARN : les erreurs et avertissements sont tracés
- INFO : les erreurs, avertissements et messages d'information sont tracés
- DEBUG : les messages pour diagnostiquer un problème sur l'application, et tous les autres niveaux de message sont tracés
- TRACE : Ces messages permettent de voir
Appenders
Les appenders sont les différents composants qui sont chargés de réceptionner et écrire les messages de logs. Il en existe différents types : ConsoleAppender, FileAppender, SMTPAppender, DBAppender, ...Pour plus d'informations, consultez la documentation officielle.
Configuration activée par défaut sur l'application
Le fichier de configuration par défaut est le fichier logback.xml dans le dossier /WEB-INF.Niveaux de log
Le niveau de log par défaut est INFO mais il est possible de le modifier par paramétrage, notamment pour avoir un niveau de log différent pour chacun de vos environnements d'exécution (voir ci-après pour modifier cette configuration).Appenders
Par défaut, un seul appender est présent dans l'application : WEBAPP-SIFING-APPENDER. Cet appender génère les fichiers "default-webapp.log" et "default-webapp.log.{date}" dans le dossier de logs configuré.L'appender défini est de type SiftingAppender. Ce type d'appender permet de logger dans différents fichiers en fonction du MDC défini lors de l’exécution de l'application.
Format des noms de fichier
Les noms de fichiers sont configurés pour avoir comme pattern : [jvmRoute]-[contexte].log- La jvmRoute permet d'identifier le nœud du cluster utilisé. Si aucun cluster n'est défini, la valeur default est retournée.
- Le contexte permet de définir la source du log (Application globale, Job spécifiques, ...)
Emplacement
L'emplacement des fichiers de logs est défini par la propriété « logs.path » de votre fichier env.properties. Par défaut, c'est le dossier storage/logs qui est prévu (voir ci-après pour modifier cette configuration).Rotation et purge
La rotation est paramétrée pour créer un fichier de log par jour. Le fichier sera alors renommé pour être suffixé par la date du jour au format yyyy-MM-dd. Cette rotation peut être modifiée en surchargeant l'appender par défaut de l'application.Par défaut, l'application garde les logs pendant 182 jours soit environ 6 mois. Cette valeur peut être surchargée dans les propriétés de l'application via « logs.maxDateHistory » (voir ci-après pour modifier cette configuration).
Surcharge de la configuration
Il est possible de créer sa propre configuration :- En créant un fichier application_logback.xml (positionné dans le classpath de l'application, webapp/WEB-INF/classes) : à utiliser si vous souhaitez que cette configuration soit partagée sur tous les environnements d'exécution de votre application
- Ou bien en créant un fichier env_logback.xml (positionné dans le répertoire de configuration de l'application, storage/conf) : à utiliser si vous souhaitez définir une configuration particulière pour un environnement donné (par exemple, activé le niveau de log DEBUG pour votre environnement de développement)
- Modifier le niveau de log : modifiez l'attribut "level" dans votre fichier application_logback.xml ou env_logback.xml :
<root level="DEBUG">
- Modifier le répertoire des fichiers de logs : Editez le fichier env.properties de votre application (placé sous storage/conf), et modifiez le paramètre logs.path.
- Modifier la durée de conservation des logs : Editez le fichier env.properties de votre application (placé sous storage/conf), et ajoutez le paramètre logs.maxDateHistory. La valeur doit être exprimée en jours.
Ajout d'un appender
Lors du diagnostic, il peut-être intéressant déclarer un nouvel appender pour écrire les logs d'un traitement spécifique dans un fichier dédié. Les traces applicatives ne seront alors pas polluées par le reste des traitements.Ci-dessous, un exemple d'ajout d'un appender pour écrire les logs du package com.kosmos.search.query.service dans un fichier dédié.
<!-- Déclaration d'un pattern de log -->
<property name="defaultPatternApp"
value="%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<!-- Déclaration du nouvel appender-->
<appender name="FILE-ELASTIC" class="ch.qos.logback.core.FileAppender">
<file>${logs.path}/${jvmRoute:-default}-query-elastic.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>${defaultPatternApp}</Pattern>
</layout>
</appender>
<!-- Ajout d'un logger -->
<logger name="com.kosmos.search.query.service" level="DEBUG">
<appender-ref ref="FILE-ELASTIC" />
</logger>
Liste des fichiers de log
Pour le fonctionnement courant de l'application, il y a deux fichiers de log :Nom du fichier de log | Composant correspondant |
---|---|
default-webapp.log | Application globale |
default-messaging.log | Moteur de recherche Elastic |
Ensuite, chaque script génère son propre fichier de log :
Nom du fichier de log | Script automatisé correspondant |
---|---|
default-sitemapjob.log | Génération des fichiers sitemap |
default-cleanbatch.log | Nettoyage des tables de batch |
default-scansite.log | Mise à jour de l'application |
default-mediauploadjob.log | Upload automatique des médias |
default-batchsynchrogroupfromldap-xxx.log | Synchronisation des groupes depuis le LDAP. Note : le fichier est suffixé par l'alias défini dans la configuration (plusieurs synchronisations peuvent en effet être déclarées dans la configuration) |
default-batchsynchrouserfromldap-xxx.log | Synchronisation des utilisateurs depuis le LDAP. Note : le fichier est suffixé par l'alias défini dans la configuration (plusieurs synchronisations peuvent en effet être déclarées dans la configuration) |
default-bulkindexerjob.log | Indexation complète des contenus |
default-indexeursitesweb.log | Indexation des sites externes |
default-synchronisergroupesdynamique.log | Synchronisation des groupes dynamiques |
default-importxml-[xxx].log | Synchronisation de contenu externe (import XML). Note : le fichier est suffixé d'un identifiant pour distinguer le cas où le script serait exécuté plusieurs fois dans la même journée. |
default-purgenewsletterjob.log | Script de maintenance des newsletters |
default-updateindexdbjob.log | Mise à jour des indexes de la base de données |
default-generatethumbnailjob.log | Génération des vignettes de médias (type photo) |
default-dumpmonitor-threads.log | Dump des threads et connexion de l'application |
default-scanfiche.log | Analyse des contenus |
A noter : sur une architecture distribuée comportant plusieurs serveurs applicatifs, un fichier de log est généré pour chaque serveur, et le nom du fichier de log est modifié : "default" est remplacé par le nom défini dans la configuration pour chaque serveur (jvmRoute).
Mis à jour le 8 janvier 2020
Plus d'informations
Pour des informations plus approfondies sur les possibilités de configuration, il est conseillé de se reporter directement à la documentation de logback.
Cet article n'est pas à jour ?
Connectez-vous (avec vos identifiants Communauté) pour suggérer une correction ou un complément :