2012-04-16 2 views
2

Я использую JpaTransactionManager с hibernate 3 внутри контейнера весны 3.5. Я не могу включить ведение журнала для JPA. Я хочу видеть журналы для управления транзакциями для отладки некоторых моих сервисов. Я использую log4j.Включение ведения журнала для JpaTransactionManager

Вот что у меня есть в моих log4j.properties

# For JPA 
log4j.logger.org.springframework.orm.jpa=DEBUG 
log4j.logger.org.springframework.orm.jpa.JpaTransactionManager=DEBUG 
log4j.logger.org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter=DEBUG 
log4j.logger.org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean=DEBUG 
log4j.logger.org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor=DEBUG 
log4j.logger.org.springframework.transaction=DEBUG 
log4j.logger.org.springframework=DEBUG 
log4j.logger.org.hibernate=DEBUG 
log4j.logger.org.hibernate.SQL=DEBUG 

# Redirect log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\apps\application.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=5 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

# Root logger option 
log4j.rootLogger=ALL, file 
+0

Что делать, если вы просто включили 'org.springframework = DEBUG'? Затем вы найдете, какие регистраторы интересны (между тоннами других). –

+1

Спасибо, я перешел к регистрации с помощью logback (http://logback.qos.ch/) поверх SLF4J, и теперь все работает плавно. Я думаю, что ранее были некоторые проблемы с SLF4J, поскольку я использовал его в режиме NOOP. – Supra

+0

Не могли бы вы ответить на вопрос самостоятельно, чтобы вы могли его обозначить как ответ? –

ответ

0

Вот что работал для меня с точки зрения включения протоколирования JPATransactionManager: 1. Скачать Logback банки (Logback-классические-1.0.1. jar, logback-core-1.0.1.jar) и введите путь к классам. Поскольку я использую SLF4J, у меня также есть log4j-over-slf4j-1.6.4.jar и slf4j-api-1.6.4.jar. 2. Используйте следующие logback.xml (в WEB-INF/классы) для конфигурации:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern> 
      %d %p [%c] - &lt;%m&gt;%n 
     </pattern> 
    </encoder> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>DEBUG</level> 
    </filter> 
</appender> 

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${catalina.home}/logs/application.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${catalina.home}/logs/application-%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>20MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

    <encoder> 
     <pattern> 
      %d %p [%c] - &lt;%m&gt;%n 
     </pattern> 
    </encoder> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>ALL</level> 
    </filter> 
</appender> 

<logger name="org.hibernate.transaction.JDBCTransaction" level="DEBUG"/> 
<logger name="org.hibernate.jdbc.ConnectionManager" level="DEBUG"/> 
<logger name="org.springframework.orm.jpa.JpaTransactionManager" level="DEBUG"/> 

<root level="ERROR"> 
    <appender-ref ref="FILE"/> 
</root> 
</configuration> 
2

Журнал транзакций может быть конкретно установлен в log4j.properties по:

log4j.logger.org.springframework.orm.jpa.JpaTransactionManager=DEBUG 

Другие журналы, представляющие интерес в этом контексте :

log4j.logger.org.hibernate.transaction=DEBUG 
log4j.logger.org.springframework.transaction=DEBUG 
Смежные вопросы