Exemple Spring MVC + Log4j
Dans ce didacticiel, nous vous montrerons comment utiliser le cadre log4j pour effectuer la journalisation dans une application Web Spring MVC.
Technologies et outils utilisés:
-
Log4j 1.2.17
-
Spring 4.1.6.RELEASE
-
Maven 3
-
Tomcat 6
-
Eclipse Kepler 4.3
Note
Par défaut, Spring (spring-core) utilise le JCL (commons-logging) pour la journalisation, et le JCL dispose d'un algorithme de découverte d'exécution pour trouver d'autres frameworks de journalisation emplacements connus sur le chemin des classes du projet.
Pour intégrer log4j, il vous suffit de:
-
Place les
log4j.jar
dans le chemin de classe du projet. -
Créez un fichier
log4j.properties
oulog4j.xml
dans le chemin de classe racine du projet (si vous suivez la structure de répertoire standard de Maven, cela devrait être le dossierresources
).
1. Répertoire des projets
Passez en revue la structure finale du projet.
2. Dépendances du projet
Déclare les dépendances suivantes:
pom.xml
4.1.6.RELEASE 1.2.17 org.springframework spring-webmvc ${spring.version} log4j log4j ${log4j.version}
3. log4j.properties
Créez un fichierlog4j.properties
et placez-le dans le fichierresources
. dossier, reportez-vous à la structure du répertoire du projet ci-dessus.
log4j.properties
# Root logger option log4j.rootLogger=DEBUG, stdout, file # Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # Redirect log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
4. Contrôleur Spring MVC + enregistrement des messages
Un simple contrôleur pour renvoyer une page d'accueil. De plus, il vous montre comment utiliser log4j pour effectuer la journalisation.
WelcomeController.java
package com.example.common.controller; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller public class WelcomeController { private static final Logger logger = Logger.getLogger(WelcomeController.class); @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView getWelcome() { //logs debug message if(logger.isDebugEnabled()){ logger.debug("getWelcome is executed!"); } //logs exception logger.error("This is Error message", new Exception("Testing")); ModelAndView model = new ModelAndView("welcome"); model.addObject("msg", "Hello Spring MVC + Log4j"); return model; } }
5. Demo
5.1 Download the source code, and run the web app with the embedded Jetty container.
$ mvn jetty:run
URL d'accès:http://localhost:8080/spring-mvc-log4j/
5.2 All logging messages will be displayed in the console.
log4j.properties
# Redirect log messages to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Console jetée
2015-06-19 14:10:35 DEBUG WelcomeController:19 - getWelcome is executed! 2015-06-19 14:10:35 ERROR WelcomeController:23 - This is Error message java.lang.Exception: Testing at com.example.common.controller.WelcomeController.getWelcome(WelcomeController.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606)
Télécharger le code source
Téléchargez-le -spring-mvc-log4j.zip (5 Ko)