Spring MVC + Logback SLF4j пример
В этом руководстве мы покажем вам, как настроить slf4j иlogback в веб-приложении Spring MVC.
Используемые технологии:
-
Весна 4.1.6. ВЫПУСК
-
Logback 1.1.3
-
Maven 3 или Gradle 2.0
-
Tomcat 7
-
Затмение 4.4
Note
По умолчанию Spring использует Jakarta Commons Logging API (JCL), прочтитеthis.
Для настройки фреймворка logback вам необходимо:
-
Исключить
commons-logging
изspring-core
-
Преобразование логирования Spring из JCL в SLF4j через
jcl-over-slf4j
-
Включить logback как зависимость
-
Создайте
logback.xml
в папкеsrc/main/resources
-
Done
1. Инструменты сборки
1.1 For Maven
pom.xml
1.7 4.1.6.RELEASE 1.1.3 1.7.12 org.springframework spring-core ${spring.version} commons-logging commons-logging org.springframework spring-webmvc ${spring.version} org.slf4j jcl-over-slf4j ${jcl.slf4j.version} ch.qos.logback logback-classic ${logback.version}
1.2 For Gradle
build.gradle
apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' repositories { mavenCentral() } //1. exclude commons-logging configurations.all { exclude group: "commons-logging", module: "commons-logging" } dependencies { //2. bridge logging from JCL to SLF4j compile 'org.slf4j:jcl-over-slf4j:1.7.12' //3. Logback compile 'ch.qos.logback:logback-classic:1.1.3' compile 'org.springframework:spring-webmvc:4.1.6.RELEASE' }
2. Каталог проектов
Создайтеlogback.xml
в папкеsrc/main/resources
3. logback.xml
Этотlogback.xml
отправит все журналы на консоль.
logback.xml
%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
Для других приложений (вывод журнала), например журналов в файл, посетите этотlog.xml examples или этотlogback appender guide
4. Пример возврата
WelcomeController.java
package com.example.common.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class WelcomeController { private static final Logger logger = LoggerFactory.getLogger(WelcomeController.class); @RequestMapping(value = "/", method = RequestMethod.GET) public String welcome(Model model) { logger.debug("welcome() is executed, value {}", "example"); logger.error("This is Error message", new Exception("Testing")); model.addAttribute("msg", "Hello Spring MVC + Logback"); return "welcome"; } }
5. Demo
Загрузитеsource code и запустите его с помощью Maven или Gradle.
5.1 Maven
mvn jetty:run
5.2 Gradle
gradle jettyRun
URL доступа:http://localhost:8080/spring-mvc-logback
Приставка
... 2015-06-19 21:53:33 DEBUG o.s.web.servlet.DispatcherServlet - Initializing servlet 'hello-dispatcher' 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Adding [servletConfigInitParams] PropertySource with lowest search precedence 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Adding [servletContextInitParams] PropertySource with lowest search precedence 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Adding [jndiProperties] PropertySource with lowest search precedence 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Adding [systemProperties] PropertySource with lowest search precedence 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence 2015-06-19 21:53:33 DEBUG o.s.w.c.s.StandardServletEnvironment - Initialized StandardServletEnvironment with PropertySources [servletConfigInitParams,servletContextInitParams,jndiProperties,systemProperties,systemEnvironment] Jun 19, 2015 9:53:33 PM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring FrameworkServlet 'hello-dispatcher' 20 ... 2015-06-19 21:53:45 DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton bean 'welcomeController' 2015-06-19 21:53:45 DEBUG o.s.web.servlet.DispatcherServlet - Last-Modified value for [/spring-mvc-logback/] is: -1 2015-06-19 21:53:45 ERROR c.m.c.controller.WelcomeController - This is Error message java.lang.Exception: Testing at com.example.common.controller.WelcomeController.welcome(WelcomeController.java:21) [WelcomeController.class:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_65] at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_65] ...
Журналы Spring и веб-приложений будут отправлены на консоль.
Скачать исходный код
Скачать -spring-mvc-logback-example.zip (6 КБ)