Configuré Spring con soporte transaccional. ¿Hay alguna forma de registrar transacciones solo para asegurarme de que configuré todo correctamente? Mostrar en el registro es una buena forma de ver lo que está sucediendo.
java
spring
transactional
cometa
fuente
fuente
INFO
level no mostrará ninguna actividad tx en absoluto, sería demasiado detallado.DEBUG
será necesario allí.Para mí, una buena configuración de registro para agregar fue:
Me mostrará un registro así:
fuente
Para la aplicación Spring Boot con
application.properties
o si prefieres Yaml (
application.yaml
)fuente
La información de registro más interesante de
JtaTransactionManager.java
(si esta pregunta todavía es sobreJtaTransactionManager
) se registra conDEBUG
prioridad. Suponiendo que tenga unlog4j.properties
lugar en la ruta de clases, le sugiero que use:fuente
Debido a que puede acceder a las clases de Spring en tiempo de ejecución, puede determinar el estado de la transacción. Este artículo puede ayudarlo a:
https://dzone.com/articles/monitoring-declarative-transac
fuente
isActualTransactionActive()
lugar de recuperarla en cada llamada de registro.También puede habilitar el registro JDBC:
fuente
Aquí hay un código que utilizo en mi implementación de Logback Layout derivado de ch.qos.logback.core.LayoutBase .
Creo una variable local de hilo para almacenar la referencia al método
org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive()
. Siempre que se imprime una nueva línea de registro,getSpringTransactionInfo()
se llama y devuelve una cadena de un carácter que se incluirá en el registro.Referencias:
Código:
fuente