Spring MVC + Log4j Beispiel

Spring MVC + Log4j Beispiel

spring-log4j

In diesem Tutorial zeigen wir Ihnen, wie Sie das log4j-Framework verwenden, um die Protokollierung in einer Spring MVC-Webanwendung durchzuführen.

Verwendete Technologien und Werkzeuge:

  1. Log4j 1.2.17

  2. Feder 4.1.6.FREIGABE

  3. Maven 3

  4. Tomcat 6

  5. Eclipse Kepler 4.3

Note
Standardmäßig verwendet Spring (Federkern) die JCL (commons-logging) für die Protokollierung, und die JCL verfügt über einen Laufzeiterkennungsalgorithmus, um herauszufinden, ob andere Protokollierungsframeworks vorhanden sind bekannte Stellen auf dem Projektklassenpfad.

Um log4j zu integrieren, müssen Sie nur Folgendes tun:

  1. Setzt dielog4j.jar in den Projektklassenpfad.

  2. Erstellen Sie einelog4j.properties- oderlog4j.xml-Datei im Projektstammklassenpfad (wenn Sie der Maven-Standardverzeichnisstruktur folgen, sollte dies derresources-Ordner sein).

1. Projektverzeichnis

Überprüfen Sie die endgültige Projektstruktur.

spring-mvc-log4j

2. Projektabhängigkeiten

Deklariert die folgenden Abhängigkeiten:

pom.xml

    
        4.1.6.RELEASE
        1.2.17
    

    

        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            log4j
            log4j
            ${log4j.version}
        

    

3. log4j.properties

Erstellen Sie einelog4j.properties-Datei und fügen Sie sie inresources ein. Ordner finden Sie in der obigen Projektverzeichnisstruktur.

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. Spring MVC Controller + Nachrichtenprotokollierung

Ein einfacher Controller, um eine Begrüßungsseite zurückzugeben. Außerdem erfahren Sie, wie Sie mit log4j protokollieren.

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

Stegkonsole

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)

Quellcode herunterladen

Laden Sie es herunter -spring-mvc-log4j.zip (5 KB)