2011-03-04 3 views
0

는 여기에서의 log4j를 사용하여 로그인 할 수 바람둥이 6을 구성하는 지시를 따랐다 : Logging in TomcatTomcat 6 Log4j 구성 - stdout이 아직 기록되지 않습니까?

는 그러나, 나는 스레드가 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 디렉토리의 파일입니다 : 여기 내 log4j.properties 파일입니다. 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/클래스에서 내 웹 애플리케이션에 배치 유사한 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에 대한 임계 값을 설정하는 것입니다.

log4j.appender.Console.Threshold=WARN 
:

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

    ... 
    </appender> 

그것은 자신의 플랫 파일에과 같습니다이가 XML에 어떻게하는지입니다