logback.xml Example
Voici quelques exemples delogback.xml
qui sont utilisés dans mes projets, juste pour le partage.
P.S Tested with Logback 1.2.3
1. Envoyer les journaux à la console
Tous les journaux seront redirigés vers la console.
logback.xml
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
2. Envoyer les journaux au fichier + faire pivoter le fichier
2.1 All logging will be redirected to a file logs/app.log
. De plus, ce fichier journal sera archivé quotidiennement ou lorsque la taille du fichier est supérieure à 10 Mo.
logback.xml
${HOME_LOG} logs/archived/app.%d{yyyy-MM-dd}.%i.log.gz 10MB 20GB 60 %d %p %c{1.} [%t] %m%n
2.2 Below SizeAndTimeBasedFNATP
example is deprecated, it may still work, but it is better to use the above new SizeAndTimeBasedRollingPolicy
example.
logback.xml
${DEV_HOME}/debug.log %d{yyyy-MM-dd HH:mm:ss} - %msg%n ${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log 10MB
3. Envoyer les journaux d'erreurs par e-mail
logback.xml
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n smtp.mailgun.org 25 123 123 TO_EMAIL RO_ANOTHER_EMAIL FROM_EMAIL TESTING: %logger{20} - %m
Pour envoyer un e-mail, nous avons besoin de cejavax.mail
pom.xml
com.sun.mail javax.mail 1.6.2
5. Journaux asynchrones
Cela rend la journalisation plus rapide.
logback.xml
6. Tamisage
Envoyez les journaux dans un fichier journal séparé, le nom du fichier journal est défini au moment de l'exécution, via MDC.
logback.xml
logFileName head0 ${DEV_HOME}/${logFileName}.log %d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{35} - %msg%n ${DEV_HOME}/${logFileName}.%i.log.zip 1 10 10MB
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; //... public void run() { MDC.put('logFileName', "head1"); logger.debug("hello"); MDC.remove('logFileName'); }
Note
Veuillez vous référer à ceLogback
SiftingAppender example complet
7. Définir le nom du fichier journal par programme
Définissez le nom du fichier journal${log.name}
par programme, viaSystem.setProperty
logback.xml
${USER_HOME}/${log.name}.error %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n ${USER_HOME}/${log.name}.log %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n
TestRunApp.java
package com.example.core; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestRunApp { //No static, else log.name.IS_UNDEFINED.log private final Logger logger = LoggerFactory.getLogger(TestRunApp.class); public static void main(String[] args) { //Set this before the logger start. System.setProperty("log.name", "abcdefg"); TestRunApp obj = new TestRunApp(); obj.start(); } private void start() { logger.debug("------ Starting Ant------"); //... } }
Sortie
Debug log file path /home/example/ant/logs/abcdefg.log Error log file path /home/example/ant/logs/abcdefg.error
Note
Veuillez vous référer à cet exemple completLogback – Set
log file name programmatically