1、首先将log4j-1.2.8.jar包含入类路径中。
2、Log4J必须在应用的其它代码执行前完成初始化 。其初始化内容如下:
import java.io.*;
import javax.servlet.*;
import org.apache.log4j.*;
public class Log4JInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath ("/");
String file = getServletConfig().getInitParam 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 .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 -app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>log4jinit< /servlet-name>
<servlet-class>com.iss.common.util.Log4JInit</servlet-class>//这里换换成具体的初始化文件 包
<init-param>
<param-name>log4j-config-file< /param-name>
<param-value>WEB-INF/log4j .properties</param-value>
</init-param>
<load-on-startup>1</load-on -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< /location>
</error-page>
</web-app>
注意:上面的load-on-startup应设为1 ,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的propertie
s子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。
4、log4j.properties的配置,具体的路径在/webapps/项目名称/WEB-INF /log4j.properties
在配置文件中即log4j.properties中这样设置:
#设置成根目录,所有包括debug以上级别的信息都打印出来到日 志文件中
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 .apache.log4j.ConsoleAppender
log4j.appender.stdout.layout =org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout .ConversionPattern=(%F:%L) - %m%d%n
打印debug级别的信息到debugInfo.log
log4j.appender.R=org.apache .log4j.DailyRollingFileAppender
log4j.appender.R.File=c: /webapps/debugInfo.log
log4j.appender.R.DatePattern=' .'yyyy-MM-dd'.txt'
log4j.appender.R.layout=org .apache.log4j.PatternLayout
log4j.appender.R.layout .ConversionPattern=%d [%F:%L] - %m /r/n
#打印info级别的信息到info.log
log4j.appender.s=org.apache .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 =100KB
# Archive log files (one backup file here)
log4j.appender.s.MaxBackupIndex =1
log4j.appender.s.layout=org .apache.log4j.PatternLayout
log4j.appender.s.layout .ConversionPattern=%p %t %c - %m%d%n
#打印error级别的信息到errorInfo.log中
log4j.appender.k=org.apache .log4j.DailyRollingFileAppender
log4j.appender.k.File=C: /Program Files/Apache Tomcat 4.0/webapps/PSA/log/error_8080.log
//log4j.appender.R.Append = true
log4j.appender.k.DatePattern=' .'yyyy-MM-dd'.txt'
log4j.appender.k.layout=org .apache.log4j.PatternLayout
log4j.appender.k.layout .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>
2、Log4J必须在应用的其它代码执行前完成初始化
import java.io.*;
import javax.servlet.*;
import org.apache.log4j.*;
public class Log4JInit extends HttpServlet {
public void init() throws ServletException {
String prefix = getServletContext().getRealPath
String file = getServletConfig().getInitParam
// 从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
<?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
<web-app>
<servlet>
<servlet-name>log4jinit<
<servlet-class>com.iss.common.util.Log4JInit</servlet-class>//这里换换成具体的初始化文件
<init-param>
<param-name>log4j-config-file<
<param-value>WEB-INF/log4j
</init-param>
<load-on-startup>1</load-on
</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<
</error-page>
</web-app>
注意:上面的load-on-startup应设为1
4、log4j.properties的配置,具体的路径在/webapps/项目名称/WEB-INF
在配置文件中即log4j.properties中这样设置:
#设置成根目录,所有包括debug以上级别的信息都打印出来到日
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
log4j.appender.stdout.layout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout
打印debug级别的信息到debugInfo.log
log4j.appender.R=org.apache
log4j.appender.R.File=c:
log4j.appender.R.DatePattern='
log4j.appender.R.layout=org
log4j.appender.R.layout
#打印info级别的信息到info.log
log4j.appender.s=org.apache
log4j.appender.s.File= c:/webapps/info.log <script type="text/javascript"> </script>
# Control the maximum log file size
log4j.appender.s.MaxFileSize
# Archive log files (one backup file here)
log4j.appender.s.MaxBackupIndex
log4j.appender.s.layout=org
log4j.appender.s.layout
#打印error级别的信息到errorInfo.log中
log4j.appender.k=org.apache
log4j.appender.k.File=C:
//log4j.appender.R.Append = true
log4j.appender.k.DatePattern='
log4j.appender.k.layout=org
log4j.appender.k.layout
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>