lo4j日誌文件地址動態設置

 懂行的人都知道,log4j日誌是個很基礎的東東,與struts這種高層框架無關,只與web開發了的tomcat有關。這裏之因此寫出struts,是由於筆者一開始用struts的時候,覺得是這樣,也是這樣google的。好了,言歸正傳,開工了javascript

給tomcat配置log4j有好幾種方法,我知道的有:css

1、tomcat級別的統一日誌管理(沒有實際驗證過,只是查了資料):

在tomcat的common/lib下增長log4j的.jar包,以便程序使用的時候,可以加載到。html

在本身的webapps的WEB-INF/classes下添加log4j.properties配置,全部的東西都是自動的java

 

這種方式的缺點很明顯,一個tomcat可能會多個子webapps,都統一到一個日誌下,很是不便於管理。因此重點看下面linux

 

2、每一個webapp分別配置log4j(切實可行的實踐經驗)

一、在本身youapp的WEB-INF/lib下增長log4j-xxx.jar文件web

二、本身寫一個servlet,初始化log4j的相關配置信息:apache

Java代碼    收藏代碼
  1. import javax.servlet.ServletException;  
  2. import javax.servlet.ServletRequest;  
  3. import javax.servlet.ServletResponse;  
  4. import javax.servlet.http.HttpServlet;  
  5. import org.apache.log4j.PropertyConfigurator;  
  6.   
  7. public class Log4jInitServlet extends HttpServlet {  
  8.     public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {          
  9.     }  
  10.       
  11.     public void init() throws ServletException {  
  12.         System.setProperty("webappRoot", getServletContext().getRealPath("/"));       
  13.         PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));  
  14.     }  
  15. }  

 三、修改web.xml文件,讓tomcat啓動你app的時候自動加載剛纔這個servlet:windows

Xml代碼    收藏代碼
  1. <!-- initialize log4j -->  
  2. <servlet>  
  3.     <servlet-name>log4j config file</servlet-name>  
  4.     <servlet-class>com.keepc.util.Log4jInitServlet</servlet-class>  
  5.     <init-param>  
  6.         <param-name>configfile</param-name>  
  7.         <param-value>/WEB-INF/classes/log4j.properties</param-value>  
  8.     </init-param>  
  9.       
  10.     <load-on-startup>1</load-on-startup>  
  11. </servlet>  

 四、在youapp/WEB-INF/classes先新建log4j.properties文件,內容以下:瀏覽器

log4j.rootLogger=debug, A1

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=${webappRoot}/logs/youapp_log-
log4j.appender.A1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}[%c]-[%p] %m%ntomcat

五、從新啓動tomcat,便可在你的youapp應用目錄下看到logs目錄和對應的log文件

#:這裏說道的webapp目錄是指:c:\program files\tomcat\webapps\youapp目錄

六、在你的app目錄下建立一個jsp作下測試:

Html代碼    收藏代碼
  1. <%@ page contentType="text/html; charset=GBK" language="java" import="org.apache.log4j.Logger,java.util.*"%>  
  2. <html>  
  3. <head>  
  4. <link href="style/reg.css" rel="stylesheet" type="text/css">  
  5. <title>測試頁面</title>  
  6. </head>  
  7. <body>  
  8.   
  9. <%  
  10. Logger log = Logger.getLogger("test.jsp");  
  11. log.debug("測試日誌,哈哈");  
  12. %>  
  13.   
  14. </body>  
  15.   
  16. </html>  

在你的瀏覽器調用下這個jsp,就能夠看到日誌內容了。

 

本方法在windows和linux下都通用,徹底同樣。

只與log4j.properties的詳細配置方法,網上隨便google下都有一籮筐,照抄就是了。

相關文章
相關標籤/搜索