在web應用中使用日誌

來源:互聯網
上載者:User

標籤: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應用中使用日誌

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.