SpringMVC配置Log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件等。在进行SpringMVC项目开发时,可以通过简单的Log4j配置文件对需要打印的信息进行控制。

        注:创建项目后,先导入springMVC所需要的jar包,以及log4j的jar包。

项目结构:
SpringMVC配置Log4j

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!--加载log4j配置文件-->
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/log4j.properties</param-value>
	</context-param>
	<!--启动一个watchdog线程,每60秒扫描一下log4j配置文件-->
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
	<!--spring log4j监听器-->
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<!-- spring mvc 总控制器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:/config/spring-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
	<!-- 开启注解 -->
	<mvc:annotation-driven />
	<!-- 注解扫描包 -->
	<context:component-scan base-package="cn.test" />
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!--支持JSTL -->
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
		<property name="prefix" value="/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>
log4j.rootLogger=INFO,R,DAILYFILE
#将等级为INFO的日志信息输出到R和DAILYFILE
log4j.appender.R=org.apache.log4j.ConsoleAppender
#定义名为R输出端类型
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.R.Target=System.out
#输出日志到控制台的方式,默认为System.out
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#定义R输出端的layout类型
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss},%c,%-p,%m \n
#log4j.appender.R.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
#使用pattern布局需要指定打印信息的具体格式
#%m 输出代码中指定的消息
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目,通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
#[QC]是log信息的开头,可以为任意字符,一般为项目简称
log4j.appender.DAILYFILE=org.apache.log4j.DailyRollingFileAppender
#定义R为每天产生一个日志文件
log4j.appender.DAILYFILE.File=${catalina.home}/logs/mvc_log4j.log
#指定R日志文件路径
log4j.appender.DAILYFILE.layout=org.apache.log4j.PatternLayout
#灵活指定布局模式
log4j.appender.DAILYFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss},%c,%-p,%m \n
#指定打印信息的具体格式
#log4j.appender.DAILYFILE.MaxFileSize=1024KB
#设置日志文件的最大限制
#log4j.appender.DAILYFILE.MaxBackupIndex=1000
#最多只保存1000个备份文件
#log4j.logger.com.opensymphony.xwork2=ERROR
#把com.opensymphony.xwork2下的所有的类的输出级别都提高到了ERROR
#log4j.logger.org.directwebremoting=warn
#设置此警告查看在项目启动时的信息
package cn.test;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloLog4j {
	private static Logger log = Logger.getLogger(HelloLog4j.class);
	@RequestMapping("/test")
	public String testHelloLog4j(HttpServletRequest request,
               HttpServletResponse response) {
		log.info("Hello Log4j !");
		return "/test";
	}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Log4j</title>
  </head>
  <body>
    Hello Log4j !<br>
  </body>
</html>
http://localhost:8080/spring_mvc_log4j/test

相关推荐