Saya mengonfigurasi pegas dengan dukungan transaksional. Apakah ada cara untuk mencatat transaksi hanya untuk memastikan saya mengatur semuanya dengan benar? Menampilkan di log adalah cara yang baik untuk melihat apa yang terjadi.
java
spring
transactional
cometta
sumber
sumber
INFO
level tidak akan menampilkan aktivitas tx sama sekali, itu akan terlalu bertele-tele.DEBUG
akan dibutuhkan di sana.Bagi saya, konfigurasi logging yang bagus untuk ditambahkan adalah:
Ini akan menunjukkan kepada saya log seperti itu:
sumber
Untuk aplikasi Spring Boot dengan
application.properties
atau jika Anda lebih suka Yaml (
application.yaml
)sumber
Informasi log paling menarik dari
JtaTransactionManager.java
(jika pertanyaan ini masih tentangJtaTransactionManager
) dicatat sebagaiDEBUG
prioritas. Dengan asumsi Anda memiliki suatulog4j.properties
tempat di classpath, saya menyarankan untuk menggunakan:sumber
Karena Anda dapat mengakses kelas Spring saat runtime, Anda dapat menentukan status transaksi. Artikel ini dapat membantu Anda:
https://dzone.com/articles/monitoring-declarative-transac
sumber
isActualTransactionActive()
alih - alih mengambilnya pada setiap panggilan logging.Anda juga dapat mengaktifkan logging JDBC:
sumber
Berikut adalah beberapa kode yang saya gunakan dalam implementasi Tata Letak Logback yang berasal dari ch.qos.logback.core.LayoutBase .
Saya membuat variabel thread-local untuk menyimpan referensi ke metode
org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive()
. Setiap kali baris log baru dicetak,getSpringTransactionInfo()
dipanggil dan mengembalikan string satu karakter yang akan masuk ke log.Referensi:
Kode:
sumber