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