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-logLes 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>
Ping : Des logs context-aware ! | Excilys Labs