Spring MVC + Log4j пример
В этом руководстве мы покажем вам, как использовать каркас log4j для ведения журнала в веб-приложении Spring MVC.
Используемые технологии и инструменты:
-
Log4j 1.2.17
-
Весна 4.1.6. ВЫПУСК
-
Maven 3
-
Tomcat 6
-
Затмение Кеплер 4.3
Note
По умолчанию Spring (spring-core) использует JCL (commons-logging) для ведения журнала, а JCL имеет алгоритм обнаружения во время выполнения, чтобы найти другие структуры ведения журнала в хорошо известные места в пути к классам проекта.
Чтобы интегрировать log4j, все, что вам нужно сделать, это:
-
Помещает
log4j.jar
в путь к классам проекта. -
Создайте файл
log4j.properties
илиlog4j.xml
в корневом пути к классам проекта (если вы следуете стандартной структуре каталогов Maven, это должна быть папкаresources
).
1. Каталог проектов
Просмотрите окончательную структуру проекта.
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
URL доступа: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
Консоль причала
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 КБ)