Configuration logback
Configuration logback
Exemple simple
Utilisation en Java avec SLF4J
1public class Slf4jExample {
2
3 private static final Logger LOGGER = LoggerFactory.getLogger(Slf4jExample.class);
4
5 public static void main(String[] args) {
6 LOGGER.debug("Debug log message");
7 LOGGER.info("Info log message");
8 LOGGER.error("Error log message");
9 }
10}
Configuration simple sur la console
1<configuration>
2
3 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
4 <layout class="ch.qos.logback.classic.PatternLayout">
5 <Pattern>
6 %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
7 </Pattern>
8 </layout>
9 </appender>
10
11 <logger name="com.mkyong" level="debug" additivity="false">
12 <appender-ref ref="CONSOLE"/>
13 </logger>
14
15 <root level="error">
16 <appender-ref ref="CONSOLE"/>
17 </root>
18
19</configuration>
Configuration en reprenant le pattern de spring boot
1<?xml version="1.0" encoding="UTF-8"?>
2<configuration scan="true">
3 <!-- use Spring default values -->
4 <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
5
6 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7 <encoder>
8 <pattern>${CONSOLE_LOG_PATTERN}</pattern>
9 <charset>utf8</charset>
10 </encoder>
11 </appender>
12 …
13</configuration>
Séparation de certains log dans un fichier séparé
Pour mettre les logs dans un fichier séparé :
1<?xml version="1.0"?>
2<configuration>
3 <appender name="FILE" class="ch.qos.logback.core.FileAppender">
4 <file>logfile.log</file>
5 <append>true</append>
6 <encoder>
7 <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
8 </encoder>
9 </appender>
10 <appender name="ANALYTICS-FILE" class="ch.qos.logback.core.FileAppender">
11 <file>analytics.log</file>
12 <append>true</append>
13 <encoder>
14 <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
15 </encoder>
16 </appender>
17 <!-- additivity=false ensures analytics data only goes to the analytics log -->
18 <logger name="analytics" level="DEBUG" additivity="false">
19 <appender-ref ref="ANALYTICS-FILE"/>
20 </logger>
21 <root>
22 <appender-ref ref="FILE"/>
23 </root>
24</configuration>
Pour l'utiliser
1Logger analytics = LoggerFactory.getLogger("analytics");
Pour indiquer ou se trouve le fichier de log
1-Dlogging.config=file:///your/file/location/logback.xml
Configuration d'un appender dans un fichier avec rollback
1<configuration>
2 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
3 <file>logFile.log</file>
4 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
5 <!-- daily rollover -->
6 <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
7
8 <!-- keep 30 days' worth of history capped at 3GB total size -->
9 <maxHistory>30</maxHistory>
10 <totalSizeCap>3GB</totalSizeCap>
11
12 </rollingPolicy>
13
14 <encoder>
15 <pattern>%-4relative [%thread] %-5level %logger{35} -%kvp- %msg%n</pattern>
16 </encoder>
17 </appender>
18
19 <root level="DEBUG">
20 <appender-ref ref="FILE" />
21 </root>
22</configuration>
syntaxe des pattern
La documentation est ici
- %X{ABC} : pour afficher un MDC. Si le {} n'est pas présent, c'est pour le MDC qui est affiché
- ${PID} : le pid du processus. C'est spécifique à Spring Boot