SpringMVC配置Log4j
Log4j是Apache的一个开放源代码项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件等。在进行SpringMVC项目开发时,可以通过简单的Log4j配置文件对需要打印的信息进行控制。
注:创建项目后,先导入springMVC所需要的jar包,以及log4j的jar包。
项目结构:
<?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
相关推荐
chw0 2020-11-04
sdaq 2020-07-26
MrLiar 2020-07-07
sdaq 2020-06-16
丨Fanny丨Cri 2020-06-13
CXC0 2020-06-08
MrLiar 2020-06-04
丨Fanny丨Cri 2020-06-03
丨Fanny丨Cri 2020-05-17
JavaWinner 2020-05-10
JavaWinner 2020-05-04
CXC0 2020-04-20
CXC0 2020-04-10
丨Fanny丨Cri 2020-02-18
MrLiar 2020-02-16
CXC0 2020-02-09