Métodos de registro de hibernación

¡Saludos queridos amigos! Mi nombre es Alexey, soy un desarrollador de producción de recursos humanos. En este artículo, propongo discutir las formas de registrar Hebernate.





Hibernate es una gran herramienta para hacer el trabajo, especialmente cuando funciona rápido y bien, pero cuando surgen problemas, debes mirar lo que está sucediendo debajo del capó. Se proporcionarán ejemplos de configuración en Spring.





La primera y más sencilla forma

Especificar en application.properties: spring.jpa.show-sql=true



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







Este enfoque le permite resolver rápidamente el problema y ayudar a encontrar errores localmente. Pero hay dos desventajas obvias:





1. La salida sql no pasa por nuestro registrador y no tiene un formato conveniente para nosotros.





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 .





. . :





De hecho, necesitamos filtrar los registros requeridos por algún atributo. Decidí hacer esto usando MDC, su alcance es solo ThreadLocal, que nos conviene. Hagamos un filtro:





Hice el procesador de anotaciones a través de un aspecto:





Bueno, la configuración usando el ejemplo de Logback:





Creemos un appender adicional con un filtro y pasemos los registros p6spy del nivel de información a través de él y no olvidemos especificar additivity = "false" para que el appender raíz no procese el mismo paquete. Eso es todo. No olvidemos que lo hicimos a través de un proxy, lo que significa que tenemos limitaciones en la elección de métodos sobre los que podemos poner una nueva anotación.





Eso es todo. ¡Hope fue útil!








All Articles