2011-03-04 33 views
0

我按照说明来配置Tomcat 6使用log4j的从这里登录:Logging in TomcatTomcat 6 Log4j配置 - 标准输出仍在写入?

然而,我注意到,线程显得记录到标准输出,完全不考虑在log4j.properties设置日志级别。这里是我的log4j.properties文件:

log4j.rootLogger=WARN, CATALINA 
    # Define all the appenders 
    log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.CATALINA.file=${catalina.base}/logs/tomcat.out 
    log4j.appender.CATALINA.encoding=UTF-8 
    # Roll-over the log once per day 
    log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log' 
    log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n 
    log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout 
    log4j.appender.CATALINA.append=true 

    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    log4j.appender.CONSOLE.encoding=UTF-8 
    log4j.appender.CONSOLE.conversionPattern = %d [%t] %-5p %c- %m%n 

    # Configure which loggers log to which appenders 
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST 
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=INFO, MANAGER 
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=INFO, HOST-MANAGER 

    log4j.logger.org.hibernate.hql.ast=ERROR 

这是在我的$ {} CATALINA_BASE/lib目录下的文件。请注意我将org.hibernate.hql.ast级别设置为ERROR的最后一行。

15663118 [http-8080-1] WARN org.hibernate.hql.ast.QueryTranslatorImpl - firstResult/maxResults specified with collection fetch; applying in memory! 
15663531 [TP-Processor7] WARN org.hibernate.hql.ast.QueryTranslatorImpl - firstResult/maxResults specified with collection fetch; applying in memor 
62100 [http-8080-18] INFO org.hibernate.cache.StandardQueryCache - starting query cache at region: video 

我也有类似的属性(但登录到不同的文件),WEB-INF/classes目录下部署在Web应用程序我类似的log4j.properties文件:正不断地喷涌到我tomcat.out日志以下。为什么日志语句不遵循我定义的转换模式,也不遵循我设置的日志级别限制?

我在SunOS 5.10 amd64上运行tomcat 6.0.30,Java 1.6.0_23和log4j 1.2.16。输出到我的应用程序日志按预期工作。在此先感谢您的帮助。

安德鲁

回答

0

主要问题,这里是你正在使用的旧的属性文件配置的Log4J的风格方式。由于现在大多数人都使用XML配置方法,因此很难找到能够回答问题的人。

但是,您需要做的是设置每个appender的阈值。这是它是如何在XML做到:

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
    ... 
     <param name="Target" value="System.out"/> 
     <param name="Threshold" value="WARN"/> 

    ... 
    </appender> 

它看起来就像他的平面文件:

log4j.appender.Console.Threshold=WARN