Spring MVC + Logback SLF4j示例

回弹

在本教程中,我们将向您介绍如何设置和SLF4J 的logback在Spring MVC的Web应用程序。

使用的技术:

  1. 春天4.1.6.RELEASE
  2. 登入1.1.3
  3. Maven 3或Gradle 2.0
  4. 雄猫7
  5. Eclipse 4.4

注意
默认情况下,Spring是使用雅加达共享日志记录API(JCL),请阅读

要设置logback框架,您需要:

  1. spring-core排除commons-logging
  2. 通过jcl-over-slf4j将Spring的日志从JCL桥jcl-over-slf4j
  3. 包括logb​​ack作为依赖
  4. src/main/resources文件夹中创建一个logback.xml
  5. 完成了

1.构建工具

1.1对于Maven

pom.xml
<properties>
	<jdk.version>1.7</jdk.version>
	<spring.version>4.1.6.RELEASE</spring.version>
	<logback.version>1.1.3</logback.version>
	<jcl.slf4j.version>1.7.12</jcl.slf4j.version>
    </properties>

    <dependencies>

	<!-- 1. exclude commons-logging -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>${spring.version}</version>
		<exclusions>
		  <exclusion>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
		  </exclusion>
		</exclusions>
	</dependency>

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	</dependency>

	<!- 2. Bridge logging from JCL to SLF4j-->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>jcl-over-slf4j</artifactId>
		<version>${jcl.slf4j.version}</version>
	</dependency>

	<!-- 3. logback -->
	<dependency>
		<groupId>ch.qos.logback</groupId>
		<artifactId>logback-classic</artifactId>
		<version>${logback.version}</version>
	</dependency>

    <dependencies>

1.2对于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.项目目录

src/main/resources文件夹中创建一个logback.xml

spring-mvc-logback

3. logback.xml

logback.xml将所有日志发送到控制台。

logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
	    <layout class="ch.qos.logback.classic.PatternLayout">
		<Pattern>
			%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
		</Pattern>
	    </layout>
	</appender>

	<logger name="org.springframework" level="debug" additivity="false">
		<appender-ref ref="STDOUT" />
	</logger>
	
	<logger name="com.mkyong.helloworld" level="debug" additivity="false">
		<appender-ref ref="STDOUT" />
	</logger>
	 
	<root level="error">
		<appender-ref ref="STDOUT" />
	</root>

</configuration>

对于其他附加程序(日志输出),例如记录到文件的日志,请访问此log.xml示例或此logback附加程序指南

4.登录示例

WelcomeController.java
package com.mkyong.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 {}", "mkyong");
		
		logger.error("This is Error message", new Exception("Testing"));
		
		model.addAttribute("msg", "Hello Spring MVC + Logback");
		return "welcome";

	}

}

5.演示

下载源代码 ,然后使用Maven或Gradle运行它。

5.1 Maven

mvn jetty:run

5.2摇篮

gradle jettyRun

访问URL: http:// localhost:8080 / spring-mvc-logback

Console
...
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.mkyong.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和Web应用程序日志记录都将发送到控制台。

下载源代码

下载它– spring-mvc-logback-example.zip (6 KB)

参考文献

  1. Spring官方指南–日志记录
  2. 登录官方网站
  3. logback.xml示例
  4. Spring MVC + Log4j

翻译自: https://mkyong.com/spring-mvc/spring-mvc-logback-slf4j-example/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值