1、导入依赖包pom.xml
4.0.0
com.troy
springlog
0.0.1-SNAPSHOT
war
org.springframework
spring-webmvc
3.2.8.RELEASE
log4j
log4j
1.2.9
2、web.xml配置
spring-mvc
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
springmvc
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/
log4jConfigLocation
classpath:conf/log4j.properties
log4jRefreshInterval
1800000
org.springframework.web.util.Log4jConfigListener
说明:log4jConfigLocation、log4jRefreshInterval属性来源在:org.springframework.web.util.Log4jConfigListener里面的Log4jWebConfigurer配置里面
3、log4j.properties的配置
log4j.rootLogger=INFO,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/log.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=50
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%n
log4j.logger.ims=DEBUG
log4j.logger.tems=DEBUG
log4j.logger.com=DEBUG
log4j.logger.com.ibatis.io=ERROR
log4j.logger.com.opensymphony.oscache=INFO
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=INFO
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=WARN
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
log4j.logger.com.opensymphony.xwork2=INFO
log4j.logger.org.apache.struts2=INFO
log4j.logger.org.apache.struts2.convention=INFO
log4j.logger.com.opensymphony.xwork2.util.finder=INFO
log4j.logger.com.canoo.webtest=WARN
# All hibernate log output of "info" level or higher goes to stdout.
# For more verbose logging, change the "info" to "debug" on the last line.
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type=trace
#for jsp
log4j.logger.org.apache.jasper.servlet=OFF
log4j.logger.org.apache.catalina.core=OFF
具体参数配置的意义,自行百度。
5、后台应用
@RequestMapping(value="/log")
@Controllerpublic classLogController {private static Logger log = Logger.getLogger(LogController.class);
@RequestMapping(value="/init")publicString init(){
log.info("log.jsp init");return "log";
}
}
注意:这里我只是做的测试,不要在意写那个层
6、打印参数
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
%M 输出方法的名字、%m是输出代码指定的日志信息。
%x 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%% 输出一个”%”字符
%F 输出日志消息产生时所在的文件名称
%M 输出执行方法
%L 输出代码中的行号