Tomcat配置Log4j

一、tomcat级别的统一日志管理(没有实际验证过,只是查了资料):
在tomcat的common/lib下增加log4j的.jar包,以便程序使用的时候,能够加载到。
在自己的webapps的WEB-INF/classes下添加log4j.properties配置,所有的东西都是自动的
 
这种方式的缺点很明显,一个tomcat可能会多个子webapps,都统一到一个日志下,非常不便于管理。所以重点看下面
 
二、每个webapp分别配置log4j(切实可行的实践经验)
1、在自己youapp的WEB-INF/lib下增加log4j-xxx.jar文件
2、自己写一个servlet,初始化log4j的相关配置信息:
Java代码 
    import javax.servlet.ServletException;  
    import javax.servlet.ServletRequest;  
    import javax.servlet.ServletResponse;  
    import javax.servlet.http.HttpServlet;  
    import org.apache.log4j.PropertyConfigurator;  
     
    public class Log4jInitServlet extends HttpServlet {  
        public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {          
        }  
          
        public void init() throws ServletException {  
            System.setProperty("webappRoot", getServletContext().getRealPath("/"));       
            PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));  
        }  
    } 
 3、修改web.xml文件,让tomcat启动你app的时候自动加载刚才这个servlet:
Xml代码 
     
     
     
        log4j config file 
        com.keepc.util.Log4jInitServlet 
         
            configfile 
            /WEB-INF/classes/log4j.properties 
       
 
          
        1 
   
 
 4、在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%n
5、重新启动tomcat,即可在你的youapp应用目录下看到logs目录和对应的log文件
#:这里说道的webapp目录是指:c:\program files\tomcat\webapps\youapp目录
6、在你的app目录下创建一个jsp做下测试:
Html代码 
    <%@ page contentType="text/html; charset=GBK" language="java" import="org.apache.log4j.Logger,java.util.*"%> 
     
     
     
    测试页面 
     
     
     
    <%  
    Logger log = Logger.getLogger("test.jsp");  
    log.debug("测试日志,哈哈");  
    %> 
     
     
     
     
在你的浏览器调用下这个jsp,就可以看到日志内容了。
 
本方法在windows和linux下都通用,完全一样。
只与log4j.properties的详细配置方法,网上随便google下都有一箩筐,照抄就是了。

你可能感兴趣的:(JspAndFaceWeb)