博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Tomcat 配置 log4j(转)

Posted on 2012-08-22 21:36  蜗牛57  阅读(846)  评论(0编辑  收藏  举报

一、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代码  
      
    <!-- initialize log4j -->  
    <servlet>  
        <servlet-name>log4j config file</servlet-name>  
        <servlet-class>com.keepc.util.Log4jInitServlet</servlet-class>  
        <init-param>  
            <param-name>configfile</param-name>  
            <param-value>/WEB-INF/classes/log4j.properties</param-value>  
        </init-param>  
           
        <load-on-startup>1</load-on-startup>  
    </servlet>  
 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.*"%>  
    <html>  
    <head>  
    <link href="style/reg.css" rel="stylesheet" type="text/css">  
    <title>测试页面</title>  
    </head>  
    <body>  
      
    <%   
    Logger log = Logger.getLogger("test.jsp");   
    log.debug("测试日志,哈哈");   
    %>  
      
    </body>  
      
    </html>  
在你的浏览器调用下这个jsp,就可以看到日志内容了。 
 
本方法在windows和linux下都通用,完全一样。
只与log4j.properties的详细配置方法,网上随便google下都有一箩筐,照抄就是了。

 

tomcat5.5 下的log4j日志文件 配置过程

 

如果不是找5.5的而找6.0的可以参考:tomcat6.0 下的log4j日志文件 配置过程 

 http://sibianzhizhi.iteye.com/blog/209511
=============================================================================
以下为5.5的配置过程:
log4j.properties放在%CATALINA_HOME%\conf\common\classes下

# 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout

# 设定stdout控制台 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} \"%m\"%n

# 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=${catalina.home}/logs/bugmgrsys.log
log4j.appender.file.MaxFileSize=1024KB

# 设定制定的file使用的PatternLayout. 
# 有关ConversionPattern中的转意字符的含义参考说明 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n

 

log4j.jar放于%CATALINA_HOME%\common\lib下

 

高级篇:

查了很多人写的资料如果要产生bugmgrsys_2008_05_09.log文件是可能的。不过,注意了是不过,

不过这个文件也只有05月09号过去了这个文件才会产生,而当天的文件是bugmgrsys

为什么会这样呢,不妨碍来看看配置文件吧。我是在上述文件上改的 = =

# 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout

# 设定stdout控制台 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} \"%m\"%n

# 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。 
#log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.File=${catalina.home}/logs/bugmgrsys
#log4j.appender.file.MaxFileSize=1024KB

# 设定制定的file使用的PatternLayout. 
# 有关ConversionPattern中的转意字符的含义参考说明 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
#log4j.appender.file.layout.ConversionPattern=%d %-5p [%t] %C{2} (%F:%L) - %m%n