Я настроил spring с поддержкой транзакций. Есть ли способ регистрировать транзакции, чтобы убедиться, что я все правильно настроил? Отображение в журнале - хороший способ увидеть, что происходит.
java
spring
transactional
комета
источник
источник
INFO
level не будет показывать никакой активности tx, это было бы слишком многословно.DEBUG
там будет нужно.Для меня была добавлена хорошая конфигурация журналирования:
Он покажет мне такой журнал:
источник
Для приложения Spring Boot с
application.properties
или если вы предпочитаете Yaml (
application.yaml
)источник
Наиболее интересная информация журнала
JtaTransactionManager.java
(если этот вопрос все еще касаетсяJtaTransactionManager
) регистрируется сDEBUG
приоритетом. Предполагая, что у вас естьlog4j.properties
где-то в пути к классам, я бы предложил использовать:источник
Поскольку вы можете получить доступ к классам Spring во время выполнения, вы можете определить статус транзакции. Эта статья может помочь вам:
https://dzone.com/articles/monitoring-declarative-transac
источник
isActualTransactionActive()
вместо извлечения ее при каждом вызове журнала.Вы также можете включить ведение журнала JDBC:
источник
Вот код, который я использую в своей реализации Logback Layout, полученный из ch.qos.logback.core.LayoutBase .
Я создаю локальную переменную потока для хранения ссылки на метод
org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive()
. Всякий раз, когда печатается новая строка журнала,getSpringTransactionInfo()
вызывается, и он возвращает односимвольную строку, которая войдет в журнал.Ссылки:
Код:
источник