Spring MVC + пример Log4j

Spring MVC + Log4j пример

spring-log4j

В этом руководстве мы покажем вам, как использовать каркас log4j для ведения журнала в веб-приложении Spring MVC.

Используемые технологии и инструменты:

  1. Log4j 1.2.17

  2. Весна 4.1.6. ВЫПУСК

  3. Maven 3

  4. Tomcat 6

  5. Затмение Кеплер 4.3

Note
По умолчанию Spring (spring-core) использует JCL (commons-logging) для ведения журнала, а JCL имеет алгоритм обнаружения во время выполнения, чтобы найти другие структуры ведения журнала в хорошо известные места в пути к классам проекта.

Чтобы интегрировать log4j, все, что вам нужно сделать, это:

  1. Помещаетlog4j.jar в путь к классам проекта.

  2. Создайте файлlog4j.properties илиlog4j.xml в корневом пути к классам проекта (если вы следуете стандартной структуре каталогов Maven, это должна быть папкаresources).

1. Каталог проектов

Просмотрите окончательную структуру проекта.

spring-mvc-log4j

2. Зависимости проекта

Объявляет следующие зависимости:

pom.xml

    
        4.1.6.RELEASE
        1.2.17
    

    

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

        
        
            log4j
            log4j
            ${log4j.version}
        

    

3. log4j.properties

Создайте файлlog4j.properties и поместите его вresources. папку, обратитесь к вышеупомянутой структуре каталогов проекта.

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 + регистрация сообщений

Простой контроллер для возврата страницы приветствия. Кроме того, он показывает, как использовать log4j для ведения журнала.

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

Консоль причала

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)

Скачать исходный код

Скачать -spring-mvc-log4j.zip (5 КБ)