Spring MVC + Log4j exemple

Exemple Spring MVC + Log4j

spring-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:

  1. Log4j 1.2.17

  2. Spring 4.1.6.RELEASE

  3. Maven 3

  4. Tomcat 6

  5. 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:

  1. Place leslog4j.jar dans le chemin de classe du projet.

  2. Créez un fichierlog4j.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.

spring-mvc-log4j

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

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)