2013-07-25 1 views
0

먼저 내 질문을 읽으면서 시간을내어 주셔서 감사합니다.보기 패턴으로 열린 세션에 서블릿 필터를 사용할 때 log4j로 최대 절전 모드 로깅

내 환경을 시작합니다 : Primefaces 3.5 최대 절전 모드 4.3.2 글래스 피시를 3.1.2

내 문제는 이것이다 : 나는 쿼리의 log4j를 사용하여 않는 최대 절전 모드는 SQL (그리고 바인딩 파라미터를 기록 할 해당 검색어로). 내가로 Open Session in View 패턴을 구현하기로 결정할 때까지 작동하는 데 사용되는 로깅. 이제 로그에는이 필터의 정보 만 들어 있습니다 (예 : "데이터베이스 트랜잭션 시작 중"등).

내의 log4j.xml은 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > 
<log4j:configuration> 
    <appender name="production" 
       class="org.apache.log4j.rolling.RollingFileAppender">       
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="app.log"/> 
      <param name="FileNamePattern" value="app.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy> 

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 

    <appender name="debugfile" 
       class="org.apache.log4j.rolling.RollingFileAppender"> 
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="debug.log"/> 
      <param name="FileNamePattern" value="debug.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy>   

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout>   
    </appender> 

    <appender name="hibernatefile" 
       class="org.apache.log4j.rolling.RollingFileAppender"> 

     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 

      <param name="ActiveFileName" value="hibernate.log"/> 
      <param name="FileNamePattern" value="hibernate.log.%d{yyyy-MM-dd}.gz" /> 

     </rollingPolicy> 


     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
        value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 


    <logger name="org.hibernate.type" additivity="false"> 
     <level value="TRACE" /> 
     <appender-ref ref="hibernatefile"/> 
    </logger> 

    <logger name="org.hibernate.SQL" > 
     <level value="DEBUG" /> 
     <appender-ref ref="hibernatefile"/> 
    </logger> 


    <logger name="org.hibernate"> 
     <level value="info"/> 
     <appender-ref ref="hibernatefile" /> 
    </logger> 

    <root>   
     <appender-ref ref="debugfile" /> 
     <appender-ref ref="production" />   
    </root> 
</log4j:configuration> 

추적, 정보 및 최대 절전 모드에서 다른 정보는 어디서든 인쇄되지 않습니다.

, 당신의 도움을 주셔서 감사합니다

안드레이

답변

0

좋아, 그래서 나는이 문제에 대한 결론에 도달 생각합니다. 이 기술들 및/또는 패턴들의 조합에 대한 것이 아니라 Hibernate의 버전에 대한 문제는 없다. 이전에 Hibernate 3을 사용 했었지만 로깅은 정상적으로 진행되었지만이 문서에 따르면 최대 절전 모드 4.0부터 시작하는 http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch03.html#configuration-logging은 로깅 외관으로 slf4j를 포기하고 JBoss 로깅으로 전환했습니다. 이 링크 (https://community.jboss.org/wiki/Logging)에서 JBoss 로깅에는 log4j를 사용하는 변형이 있지만 불행히도 slf4j 대신 JBoss 로깅을 사용하도록 전체 환경을 구성하지는 못했습니다. 내 응용 프로그램의 경우 최대 절전 모드 3로 되돌아 가고 로깅은 정상적으로 진행됩니다.

JBoss logging 및 log4j에서 Hibernate 4를 사용하고 샘플 구성이있는 사람이 있다면 내 검색에서 관련 정보를 찾지 못해 많은 사람들이 높이 평가할 것이라고 생각합니다.

관련 정보를 제공해 주셔서 감사합니다.