1、首先将log4j-1.2.8.jar包含入类路径中。
2、Log4J必须在应用的其它代码执行前完成初始化<wbr></wbr>。其初始化内容如下:
import java.io.*;
import javax.servlet.*;
import org.apache.log4j.*;
public class Log4JInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath<wbr></wbr>("/");
String file = getServletConfig().getInitParam<wbr></wbr>eter("log4j-config-file");
// 从Servlet参数读取log4j的配置文件
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws
IOException, ServletException {}
}
3、web.xml内容配置如下:具体的文件放在 路径:\webapps\项目名称\WEB-INF\web<wbr></wbr>.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web<wbr></wbr>-app_2_3.dtd ">
<web-app>
<servlet>
<servlet-name>log4jinit<<wbr></wbr>/servlet-name>
<servlet-class>com.iss.common.util.Log4JInit</servlet-class>//这里换换成具体的初始化文件<wbr></wbr>包
<init-param>
<param-name>log4j-config-file<<wbr></wbr>/param-name>
<param-value>WEB-INF\log4j<wbr></wbr>.properties</param-value>
</init-param>
<load-on-startup>1</load-on<wbr></wbr>-startup>
</servlet>
<script type="text/javascript"></script>
<!-- Establish the default list of welcome files -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/FileNoFound.jsp<<wbr></wbr>/location>
</error-page>
</web-app>
注意:上面的load-on-startup应设为1<wbr></wbr>,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的propertie<wbr></wbr>s子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。
4、log4j.properties的配置,具体的路径在\webapps\项目名称\WEB-INF<wbr></wbr>\log4j.properties
在配置文件中即log4j.properties中这样设置:
#设置成根目录,所有包括debug以上级别的信息都打印出来到日<wbr></wbr>志文件中
log4j.rootLogger=debug, stdout
#设置为debug,表示只能打印出debug级别的信息
log4j.logger.debug=debug, R
#设置成info,表示只能打印出info级别的信息
log4j.logger.info=info,s
#设置成error,表示只能打印出error级别的信息
log4j.logger.error = error,k
#输出debug级别以上的信息到控制台
og4j.appender.stdout=org<wbr></wbr>.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout<wbr></wbr>=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout<wbr></wbr>.ConversionPattern=(%F:%L) - %m%d%n
打印debug级别的信息到debugInfo.log
log4j.appender.R=org.apache<wbr></wbr>.log4j.DailyRollingFileAppender
log4j.appender.R.File=c:<wbr></wbr>/webapps/debugInfo.log
log4j.appender.R.DatePattern='<wbr></wbr>.'yyyy-MM-dd'.txt'
log4j.appender.R.layout=org<wbr></wbr>.apache.log4j.PatternLayout
log4j.appender.R.layout<wbr></wbr>.ConversionPattern=%d [%F:%L] - %m \r\n
#打印info级别的信息到info.log
log4j.appender.s=org.apache<wbr></wbr>.log4j.RollingFileAppender
log4j.appender.s.File= c:/webapps/info.log <script type="text/javascript"></script>
# Control the maximum log file size
log4j.appender.s.MaxFileSize<wbr></wbr>=100KB
# Archive log files (one backup file here)
log4j.appender.s.MaxBackupIndex<wbr></wbr>=1
log4j.appender.s.layout=org<wbr></wbr>.apache.log4j.PatternLayout
log4j.appender.s.layout<wbr></wbr>.ConversionPattern=%p %t %c - %m%d%n
#打印error级别的信息到errorInfo.log中
log4j.appender.k=org.apache<wbr></wbr>.log4j.DailyRollingFileAppender
log4j.appender.k.File=C:<wbr></wbr>/Program Files/Apache Tomcat 4.0/webapps/PSA/log/error_8080.log
//log4j.appender.R.Append = true
log4j.appender.k.DatePattern='<wbr></wbr>.'yyyy-MM-dd'.txt'
log4j.appender.k.layout=org<wbr></wbr>.apache.log4j.PatternLayout
log4j.appender.k.layout<wbr></wbr>.ConversionPattern=%d [%F:%L] - %m \r\n
5、在类中的的设置如下:
class类中如下:
static Logger debugLog=new Logger.getLogger("debug")
static Logger infoLog=new Logger.getLogger("info")
static Logger errorLog=new Logger.getLogger("error")
这样不同级别的log信息就可以打在不同的log文件中.
例如debugLog.debug("");就打印到上面的debuginfo中。
InfoLog.info("");就打印到上面的infoLog中。 <script type="text/javascript"></script>