1 下载log4j
到官方网站下载log4j.jar,这里也提供了一份:
http://download.csdn.net/detail/xz2001/8503927
2 log4j整合
第一步,把log4j-1.2.17.jar复制到项目的WEB-INF/libs目录中;
第二步,在WEB-INF目录中创建log4j配置文件:log4j.properties,内容如下:
###################
# Console Appender
###################
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.Threshold = WARN
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = \r\n\u7EA7\u522B\:%p\r\n\u4FE1\u606F\:%m\r\n\u4F4D\u7F6E\:%l\r\n\u65F6\u95F4\:%d\r\n\u7C7B\u76EE\:%c\r\n\u7EBF\u7A0B\:%t\r\n
########################
# DailyRolling File
########################
log4j.appender.FILE = org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File = ${whowii.website2}/WEB-INF/logs/syslog.log
log4j.appender.FILE.MaxBackupIndex = 5
log4j.appender.FILE.MaxFileSize = 2000KB
log4j.appender.FILE.Threshold = WARN
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n\r\n
log4j.logger.org.apache = INFO
log4j.rootLogger = INFO,CONSOLE,FILE
log4j的配置项较多,如果不太明白请百度一下。
这里需要注意的是:log4j.appender.FILE.File = ${whowii.website2}/WEB-INF/logs/syslog.log
其中红色的文字与web.xml中的context-parm里的配置有关。
第三步,修改web.xml配置文件,加入如下内容:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>whowii.website2</param-value>
</context-param>
<!-- log4j 配置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
完整的web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
<display-name></display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>whowii.website2</param-value>
</context-param>
<!-- log4j 配置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- spring mvc 配置-->
<servlet>
<!-- 该名称将影响 xxx-servlet.xml 配置文件名称 -->
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- load-on-startup:表示启动容器时初始化该Servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<!--
url-pattern:表示哪些请求交给Spring Web MVC处理, "/"是用来定义默认servlet映射的。
也可以如"*.html"表示拦截所有以html为扩展名的请求。
-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 默认首页配置 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
第四步,修改之前创建的EnterController类,修改后的内容如下:
package com.whowii.core.action;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping(value = "/manage/enter")
public class EnterController {
private Logger logger = Logger.getLogger(getClass());
// 访问URL:website_java2/enter/index.do
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index() {
logger.error("访问了index方法");
return "manage/enter/index";
}
}
3 访问测试
打开浏览器,还输入上一文的网址:http://localhost:8180/website_java2/manage/enter/index.do
然后查看tomcat项目下WEB-INF目录中会多一个logs子目录,其中有日志文件,第一次访问后的日志内容如下: