【问题标题】:Spring hibernate Transaction LoggingSpring休眠事务日志
【发布时间】:2011-08-19 10:14:14
【问题描述】:

我们如何记录spring事务机制。我在下面显示Spring Doc sec 10.5.2中显示的示例。如果我想登录到这个级别如何做到这一点

我正在使用 Spring、Hibernate 和 Log4j。

<!-- the Spring container is starting up... -->
[AspectJInvocationContextExposingAdvisorAutoProxyCreator] - Creating implicit proxy
for bean 'fooService' with 0 common interceptors and 1 specific interceptors
<!-- the DefaultFooService is actually proxied -->
[JdkDynamicAopProxy] - Creating JDK dynamic proxy for [x.y.service.DefaultFooService]
<!-- ... the insertFoo(..) method is now being invoked on the proxy -->
[TransactionInterceptor] - Getting transaction for x.y.service.FooService.insertFoo
<!-- the transactional advice kicks in here... -->
[DataSourceTransactionManager] - Creating new transaction with name    [x.y.service.FooService.insertFoo]
[DataSourceTransactionManager] - Acquired Connection
[org.apache.commons.dbcp.PoolableConnection@a53de4] for JDBC transaction
<!-- the insertFoo(..) method from DefaultFooService throws an exception... -->
[RuleBasedTransactionAttribute] - Applying rules to determine whether transaction should
rollback on java.lang.UnsupportedOperationException
[TransactionInterceptor] - Invoking rollback for transaction on x.y.service.FooService.insertFoo
due to throwable [java.lang.UnsupportedOperationException]

<!-- and the transaction is rolled back (by default, RuntimeException instances cause rollback) -->
[DataSourceTransactionManager] - Rolling back JDBC transaction on Connection
[org.apache.commons.dbcp.PoolableConnection@a53de4]
[DataSourceTransactionManager] - Releasing JDBC Connection after transaction
[DataSourceUtils] - Returning JDBC Connection to DataSource

Exception in thread "main" java.lang.UnsupportedOperationException
at x.y.service.DefaultFooService.insertFoo(DefaultFooService.java:14)
<!-- AOP infrastructure stack trace elements removed for clarity -->
at $Proxy0.insertFoo(Unknown Source)

日志文件..

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
log4j.rootLogger=info, stdout
log4j.category.org.springframework.transactions=DEBUG  

【问题讨论】:

    标签: java spring logging


    【解决方案1】:

    如果您只是愿意设置 spring 事务支持的日志级别,请尝试将以下记录器添加到您的 log4j.xml 中:

    <logger name="org.springframework.transaction">
            <level value="DEBUG" />
    </logger>
    

    【讨论】:

      【解决方案2】:

      Spring 参考中有a section about Logging

      它展示了如何配置不同的日志框架,其中log4j

      在您的情况下,配置的最后一行是:

      log4j.logger.org.springframework.transaction=DEBUG
      

      【讨论】:

      • @Lucas 谢谢.. 我已经把我的 log4j 属性文件放在上面了。你能建议一些可以帮助我使用 Spring 记录我的 j2ee 应用程序的更改,休眠
      • 我们是否需要一些配置才能使用 log4j.category,因为这在我的应用程序中不起作用。 :(
      • @Vish 我从 Spring 文档中复制了它,但在 log4j 文档中找不到它。现在改为logger
      • 另外,至少在 Spring 3.1 中,命名空间是 org.springframework.transaction,no (s)。
      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 2011-11-06
      • 2011-11-16
      • 2016-03-19
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多