spring-log : quelques astuces pour se simplifier les logs

spring-log est un ensemble d’add-ons à Spring facilitant la mise en oeuvre de Slf4j et Logback:

  • Injecter automatiquement vos Loggers
  • Customiser l’emplacement de votre fichier de conf
  • @InjectLogger

    Pour injecter des Loggers dans des beans Spring:

    1
    2
    @InjectLogger
    private Logger logger;
    1
       <import resource="classpath:context/applicationContext-spring-log.xml" />

    Un BeanPostProcessor va alors être déclaré dans le context. Il se chargera d’injecter vos logger et de les configurer convenablement avec la classe du bean. Plus d’erreurs de copier/coller…

    LogbackConfigurer

    Logback accepte par défaut un fichier logback-test.xml ou logback.xml placé à la racine du classpath. Cependant, dans certains cas, il peut être nécessaire de customiser ce comportement, comme par exemple :

    • déployer plusieurs webapps sur le même serveur, externaliser les conf des applications (dans le classpath du serveur ou sur le filesystem) mais vouloir des conf isolées
    • éviter des conflits dans l’IDE entre la conf des tests de modules dépendants, par exemple ceux de la couche DAO et ceux de la couche Service


    Dans une webapp

    On s’appuie sur un Listener déclaré dans le web.xml :

    1
    2
    3
    4
    5
    6
    7
    <context-param>
      <param-name>logbackConfigLocation</param-name>
      <param-value>classpath:logback-mywebapp.xml</param-value>
    </context-param>
    <listener>
      <listener-class>com.excilys.utils.spring.log.logback.web.LogbackConfigListener</listener-class>
    </listener>

    Dans les tests

    On s’appuie sur un TestExecutorListener et une zôlie annotation:

    1
    2
    3
    4
    @RunWith(SpringJUnit4ClassRunner.class)
    @TestExecutionListeners(LogbackConfigurerTestExecutionListener.class)
    @Logback
    public class MyTest {

    Le code source et la doc sont disponibles sous GitHub à l’adresse suivante:
    https://github.com/excilys/spring-log

    Les binaires sont disponibles dans le repository Excilys :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <repository>
        <id>excilys-release</id>
        <url>http://repository.excilys.com/content/repositories/releases</url>
    </repository>

    <dependency>
        <groupId>com.excilys.utils</groupId>
        <artifactId>spring-log</artifactId>
        <version>1.0.0</version>
    </dependency>
    VN:R_U [1.9.22_1171]
    Rating: +1 (from 1 vote)
    Share
Ce contenu a été publié dans Spring, avec comme mot(s)-clef(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à spring-log : quelques astuces pour se simplifier les logs

  1. Ping : Des logs context-aware ! | Excilys Labs

Laisser un commentaire