2012-04-16 162 views
2

我在Spring 3.5容器中使用带有hibernate 3的JpaTransactionManager。我无法为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',该怎么办?你会发现哪些记录器很有趣(在其他人之间)。 – 2012-04-16 19:03:32

+1

谢谢,我使用logback(http://logback.qos.ch/)在SLF4J上移至日志记录,现在一切正常。我以前认为SLF4J存在一些问题,因为我在NOOP模式下使用它。 – Supra 2012-04-17 09:03:03

+0

那么你介意自己回答这个问题吗,以便我们可以将它标记为已回答? – 2012-04-22 09:09:36

回答

0

下面是我在启用日志记录为JpaTransactionManager接口方面什么工作: 1.下载的logback罐(的logback经典-1.0.1。 jar,logback-core-1.0.1.jar)并放入classpath。由于我使用SLF4J,我也有log4j-over-slf4j-1.6.4.jar和slf4j-api-1.6.4.jar。 2.使用以下logback.xml(在WEB-INF /类),用于配置:

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

的兴趣其他日志在此上下文中:

<?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.hibernate.transaction=DEBUG 
log4j.logger.org.springframework.transaction=DEBUG