当前位置: 首页 > 面试题库 >

为JpaTransactionManager启用日志记录

卞浩漫
2023-03-14
问题内容

我在Spring
3.5容器中将JpaTransactionManager与hibernate3一起使用。我无法为JPA启用日志记录。我希望看到用于调试我的某些服务的事务管理日志。我正在使用log4j。

这是我的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

问题答案:

在启用JPATransactionManager的日志记录方面,这对我有用:1.下载logback jar(logback-
classic-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 /
classes中)进行配置:

<?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>


 类似资料:
  • 如何获得Spring Security的调试输出?

  • 我想调试ffmpeg。我添加以下代码来打印日志: 或 但它不能工作。没有任何调试信息。 然后启用调试生成选项: 它不能工作。 我确信我添加跟踪的地方会被执行。 我只想打印一些简单的信息,怎么做?

  • 我下载了kafka-clients-0.9.0.0。jar与maven一起使用,我希望我会看到类似于Kafka日志链接中的日志记录 然而,我不知道为什么我没有得到任何日志记录,即使我设置了引导。purpuse上的服务器错误,但它只是在没有发出任何警告的情况下被卡住了。我添加了几行代码以使用log4j打印到一个文件中,这似乎是可行的,但不知道为什么Kafka不能将事件记录到log4j中。 请注意,s

  • 我试图通过连接eclipse IDE中的Oracle数据库,使用JDBC程序启用日志。 我已经完成了这个SO post JDBC日志记录到文件,然后我创建了下面的java程序并从我的eclipse IDE运行它,但是我看不到JDBC驱动程序类生成的任何日志。 我的OracleLog中有以下内容。属性文件: 但是当我通过将放在类路径中运行我的程序时,我会得到异常: 如果我在类路径中有ojdbc6\u

  • 我刚刚在EC2 Ubuntu 14.04 LTS上安装了我的第一个uWSGI服务器,使用以下配置:

  • 我试图熟悉docker生态系统,并尝试设置mysql数据库容器。使用这看起来像: 我的conf目录包含一个文件: 不幸的是,我没有这样得到任何日志文件。设置本身是正确的,并且使用了cnf文件。连接到容器并创建3个文件后,将它们添加到并重新启动容器,日志记录按预期工作。 我很确定这是一个常见的场景,我目前让它运行的方法看起来真的很愚蠢。正确的做法是什么? 我可以通过在Dockerfile中移动所有这