2011-05-05 23 views
7

cómo podemos registrar el mecanismo de la transacción de la primavera. Estoy mostrando debajo del ejemplo que se muestra en Spring Doc sec 10.5.2. Si quiero iniciar sesión en este nivel, ¿cómo hacerlo?Spring hibernate Transaction Logging

Estoy usando Spring, Hibernate y 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 
[[email protected]] 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 
[[email protected]] 
[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) 

registro de archivo ..

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 

Respuesta

9

Hay a section about Logging en la referencia de primavera.

Se muestra cómo configurar diferentes marcos de registro, entre ellos log4j

En su caso, la última línea de la configuración sería:

log4j.logger.org.springframework.transaction=DEBUG 
+0

@Lucas gracias .. He puesto la mía LOG4J archivo de propiedades arriba.puede sugerir cambios de soem que pueden ayudarme a iniciar sesión en mi aplicación j2ee usando Spring, hibernate – Vish

+0

. Necesitamos alguna configuración para usar log4j.category porque esto no está funcionando en mi aplicación. :( – Vish

+0

@Vish I copiado que a partir de los documentos de la primavera, pero no se puede d aleta en los documentos de log4j. Cambiado a 'logger' ahora –

8

Si no eres más que dispuestos a establecer el nivel de registro de soporte de transacciones primavera, trate de añadir lo siguiente a su registrador log4j.xml:

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