Log4J是Jakarta下的一个开源代码的子项目,用Log4J,我们可以使用定制的格式,把调试信息和日志信息输出到一个或多个需要的地方。 在Web应用中一般使用一个专门的Servlet来完成Log4J的配置,并保证在web.xml的配置中,这个Servlet位于其它Servlet之前,以便在Servlet和jsp中调用。下面是这个servlet,代码如下:
package example; import org.apache.log4j.*; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Log4jInit extends HttpServlet { public void init() { String prefix = getServletContext().getRealPath("/"); String file = getInitParameter("log4j");//配置文件位置 if(file != null) { PropertyConfigurator.configure(prefix+file); } } public void doGet(HttpServletRequest req, HttpServletResponse res) { } }此servlet在web.xml中配置: ........... servlet>log4j-init example.Log4jInit log4j WEB-INF/log4j.properties 1 ...........
用来配置log4J的属性文件:
log4j.rootLogger=debug, A1 , R log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=cwblog4j.log log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
<%@ page contentType="text/html; charset=GB2312" %> <%@ page import="org.apache.log4j.*" %> <% Logger logger = Logger.getLogger("test.jsp"); logger.debug("befor say hi"); %>Hi
<% logger.info("after say hi");%>
在服务器上的$TOMCAT_HOME/log4j.log文件中看到如下的信息: DEBUG Thread-5 testlog4j.jsp - befor say hi INFO Thread-5 testlog4j.jsp - after say hi 在$TOMCAT_HOME/logs/stdout.log文件的最后有下面的输出。 信息: Server startup in 5678 ms