Vous êtes ici : 6.0 > Guide d'installation et d'exploitation > Paramétrage > Paramètres optionnels

Gestion des logs

SLF4J / Logback

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.
  • SLF4J est une couche d'abstraction pour les API de journalisation Java. Le principe est similaire à celui de Jakarta Commons Logging, il est possible de changer facilement d'implémentation de journalisation sans avoir à toucher la base de code. Le backend sous-jacent est déterminé lors de l'exécution en indiquant dans le classpath l'implémentation à utiliser (java.util.logging, log4j, logback, ...).
  • Logback est le successeur de Log4J et l'implémentation native de SLF4J.

Niveau de logs

Il y a 4 niveaux de log utilisables sur l'application :
  • ERROR : seules les erreurs sont loguées
  • WARN : les erreurs et warnings sont logués
  • INFO : les erreurs, warnings et messages d'information sont logués
  • DEBUG : les messages pour « débugger » l'application, et tous les autres niveaux de message sont logués

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, ...

Layout

Pour chaque appender, le layout permet de préciser quelles informations doivent être loguées.

Configuration par défaut

Le fichier logback.xml présenté ci-dessous correspond à un exemple de configuration pour un environnement de production.

<configuration scan="true" scanPeriod="40 seconds">

     <appender name="WEBAPP" class="com.kportal.core.logging.DefaultRollingFileAppender"/>

     <root level="INFO">
         <appender-ref ref="WEBAPP" />
     </root>

     <include optional="true" resource="application_logback.xml" />
     <include optional="true" file="${conf.dir}/env_logback.xml" />
</configuration>

On définit la configuration des logs en précisant si cette configuration peut être modifiée à chaud (sans redémarrer l'application). Ici la configuration est rafraîchie toutes les 40 secondes.

Appenders et niveaux de logs K-Sup

Par défaut, un seul appender est présent dans l'application : WEBAPP. Cet appender génère les fichiers "webapp.log" et "webapp.log.{date}" dans le dossier de logs configuré.
Le niveau de log par défaut est INFO mais il est possible de réduire le niveau de logs en modifiant le paramétrage.

Rotation et purge des logs

Toutes les logs générées par l'application ont le même comportement :
  • une rotation journalière : nom_du_fichier.log.YYYY-MM-dd (cf. dossier ./storage/logs)
  • un historique de sauvegarde : l'application est paramétrée pour conserver 6 mois de fichiers de logs (logs.maxHistory=6).
Le paramétrage de l'appender WEBAPP est quant à lui géré via une classe du produit et peut être configuré directement via les properties de l'application. Le paramétrage par défaut est le suivant :
logs.defaultFile=webapp
logs.layoutPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] [%level] %msg%n
logs.fileNamePattern=%d{yyyy-MM-dd}
logs.maxHistory
=6
Où :
  • logs.defaultFile définit le nom du fichier de log.
  • logs.layoutPattern définit le format du log (ici date [Classe:ligne] [level de log] message ).
  • logs.fileNamePattern détermine le suffixe à ajouter au fichier après la rotation journalière
  • logs.maxHistory définit la durée de conservation des logs en mois.

Surcharge ou personnalisation de la configuration

Enfin, il est possible de rajouter ses propres configuration via les fichiers application_logback.xml (positionné dans le classpath de l'application) ou env_logback.xml (positionné dans le répertoire de configuration de l'application si présent).

Remarque :
Pour des informations plus approfondies sur les possibilités de configuration, il est conseillé de se reporter directement à la documentation de logback.