系统运行中很重要、但经常被忽视的东西就是log,log可以用来记录系统的运行状况、每个用户的访问情况等,主要用来记录系统的“痕迹”。记录下来的log,可以用来查找错误,也可以经过处理用来作为统计和分析的数据来源等等。
Java web系统中我们一般用log4j来记录log,接下来我们一步步来配置。
- 1.引入日志相关jar包
log4j-1.2.16.jar,commons-logging-1.2.jar,因为commons-logging-1.2.jar在其他包中有依赖,Maven已经自动引入这个包了,所以这里只需要引入log4j-1.2.16.jar,所以在pom.xml中添加如下依赖:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency>
- 2.新建log配置文件log4j.properties
在resources/config/下新建log4j.properties文件,并添加如下内容:
#log输出级别,输出方式 log4j.rootLogger=ERROR,html log4j.additivity.org.apache=true #输出到 console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Threshold=DEBUG log4j.appender.console.ImmediateFlush=true log4j.appender.console.Target=System.err log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n #输出到文件logFile log4j.appender.logFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logFile.Threshold=DEBUG log4j.appender.logFile.ImmediateFlush=true log4j.appender.logFile.Append=true log4j.appender.logFile.File=D:/log.log4j log4j.appender.logFile.layout=org.apache.log4j.PatternLayout log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l\: %m %x %n #输出到html文件 log4j.appender.html=org.apache.log4j.DailyRollingFileAppender log4j.appender.html.Append=true log4j.appender.html.File=D\:/log/log.html #log4j.appender.html.DatePattern='_'yyyy-MM-dd'.html' log4j.appender.html.DatePattern='_'yyyy-MM-dd-HH-mm'.html' log4j.appender.html.layout=org.apache.log4j.HTMLLayout log4j.appender.html.layout.ConversionPattern=%d%n%m%n其中,需要说明的是:
- log4j.rootLogger=ERROR,html ,ERROR表示输出级别,html表示输出方式。
- log4j.appender.html=org.apache.log4j.DailyRollingFileAppender ,表示它能够按一定的频度滚动生成日志记录文件。
- log4j.appender.html.File=D\:/log/log.html,表示默认生成的log名。
- log4j.appender.html.DatePattern='_'yyyy-MM-dd-HH-mm'.html',表示滚动生成的log名后缀格式,其中日期的格式决定日志生成的频率,yyyy-MM-dd-HH-mm表示每分生成一个,yyyy-MM-dd-HH每个小时生成一个,yyyy-MM-dd 每天生成一个,依次类推。
- log4j.appender.html.layout=org.apache.log4j.HTMLLayout ,表示生成html格式的log。
- log4j.appender.html.layout.ConversionPattern=%d%n%m%n,表示日志描述部分的格式和内容。
- 更详细的用法自行搜索,或者参考http://www.codeceo.com/article/log4j-usage.html。
- 3.配置log4j的监听,在 web.xml中添加如下配置:
<!-- 整合log4j --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:config/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
- 4.测试
- Log log = LogFactory.getLog(TestController.class);
- log.error("Log记录:TestController/test.do请求一次");
- 具体代码如下:
-
package com.qyuz.controller; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.qyuz.service.ITestService; @Controller public class TestController { Log log = LogFactory.getLog(TestController.class); @Autowired ITestService service; @RequestMapping("/test") public String test(){ log.error("Log记录:TestController/test.do请求一次"); return service.getPage(); } }
- 运行项目,请求http://localhost:8080/myecom/test.do,查看log:
- 点击log.html,如下:
-