標籤:blog http io ar 使用 java for sp 檔案
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中配置:
</web-app>
...........
servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>example.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...........
</web-app>
用來配置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
這個設定檔指定了兩個輸出源A1和R。前者把日誌資訊輸出到控制台,後者是一個輪轉記錄檔。最大的檔案是100KB,當一個記錄檔達到最大尺寸時,Log4J會自動把example.log重新命名為example.log.1,然後重建一個新的example.log檔案,依次輪轉。
測試檔案:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="org.apache.log4j.*" %>
<%
Logger logger = Logger.getLogger("test.jsp");
logger.debug("befor say hi");
%>
<h1> Hi</h1>
<% 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
2004-07-07 09:54:05 [testlog4j.jsp]-[DEBUG] befor say hi
2004-07-07 09:54:05 [testlog4j.jsp]-[INFO] after say hi
在web應用中使用日誌