slf4j

Slf4j est une interface pour les API de log Java. L’utilisation d’une telle interface permet de s’abstraire de l’implémentation utilisée, il est donc possible d’en changer facilement.

J’ai récemment pu voir comment pour une application slf4j + logback nous avons pu facilement faire qu’un module utilise log4j pour un environnement cible spécifique rien qu’en ajoutant des dépendances et en modifiant la configuration lors du déploiement.

Pour commencer à utiliser slf4j, voici la dépendance Maven à ajouter sur votre projet :

<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-api</artifactId>
 <version>1.7.5</version>
</dependency>

On peut ensuite utiliser le logger de la manière suivante :

static Logger LOGGER = LoggerFactory.getLogger(MyClass.class);

Pour utiliser l’implémentation logback (qui est en fait l’implémentation par défaut de slf4j),ajouter la dépendance Maven suivante :

<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-classic</artifactId>
 <version>1.0.13</version>
</dependency>

… ainsi que le fichier de configration logback.xml

<configuration>
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
   <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
 </appender>
 <logger name="sample" level="DEBUG"/>
 <root level="INFO">
  <appender-ref ref="STDOUT" />
 </root>
</configuration>

Pour utiliser l’implémentation log4j (de moins en moins utilisée car remplacée par logback) ajouter la dépendance Maven suivante :

<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-log4j12</artifactId>
 <version>1.7.5</version>
</dependency>

… ainsi que le fichier de configuration log4j.properties

log4j.rootLogger=DEBUG, STDOUT log4j.logger.sample=INFO log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) – %m%n

 

concrete-bindings
Les différents binding slf4j
legacy
Les bridges slf4j

A vous de jouer !

Publicités