Metode logging hibernasi

Salam, teman-teman terkasih! Nama saya Alexey, saya seorang pengembang produksi SDM. Pada artikel ini, saya mengusulkan untuk membahas cara-cara logging Hebernate.





Hibernate adalah alat yang hebat untuk menyelesaikan pekerjaan, terutama ketika berfungsi dengan cepat dan baik, tetapi ketika masalah muncul, Anda perlu melihat apa yang terjadi di bawah tenda. Contoh konfigurasi akan diberikan di Musim Semi.





Cara pertama dan termudah

Tentukan dalam application.properties: spring.jpa.show-sql=true



orspring.jpa.properties.hibernate.show_sql=true).







Pendekatan ini memungkinkan Anda menyelesaikan masalah dengan cepat dan membantu menemukan bug secara lokal. Tetapi ada dua kelemahan yang jelas:





1. Output sql tidak melalui logger kami dan tidak memiliki format yang nyaman bagi kami.





2. .





— properties,

logging.level.org.hibernate.SQL=DEBUG







logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE







, . , .





— proxy

log4jdbc p6spy. , log4jdbc .





<groupId>com.integralblue</groupId>







log4jdbc-spring-boot-starter







<groupId>com.github.gavlyukovskiy</groupId>







p6spy-spring-boot-starter







, . : , . p6spy.





- .





decorator.datasource.p6spy.log-filter.pattern=.*insert.*



insert .





. . :





Faktanya, kita perlu memfilter log yang diperlukan berdasarkan beberapa atribut. Saya memutuskan untuk melakukan ini menggunakan MDC, cakupannya hanya ThreadLocal, yang cocok untuk kita. Mari kita membuat filter:





Saya membuat prosesor anotasi melalui aspek:





Nah, konfigurasinya menggunakan contoh Logback:





Mari buat appender tambahan dengan filter dan lewati log p6spy dari level info dan jangan lupa untuk menentukan additivity = "false" sehingga appender root tidak memproses paket yang sama. Itu saja. Jangan lupa bahwa kami melakukannya melalui proxy, yang berarti kami memiliki keterbatasan dalam pilihan metode di mana kami dapat menempatkan anotasi baru.





Itu saja. Semoga bermanfaat!








All Articles