Spring JDBC و Spring JPA یک لایه انتزاعی روی Native JDBC Api ایجاد کرده اند که باعث میشود توسعه دهندگان از کار کردن با شرایط Native راحت شوند ولی گاهی نیاز است که Native SQL های ساخته شده را برای دیباگ کردن مشاهده کنیم در این بخش به راه های دریافت Log کوئری های Native همراه با Spring Boot میپردازیم
spring.jpa.show-sql=true
و اگر بخواهیم خوانایی و زیبایی کوئری های خروجی را هم بالا ببریم میتوانیم این گزینه را هم فعال کنیم :
spring.jpa.properties.hibernate.format_sql=true
راحت است ولی اصلا توصیه نمیشود چون تمام چیزها را نمایش نمیدهد مانند پارامتر هایی که در Prepared Statement ارسال کرده ایم
استفاده از Logger :
روش بهتر از قبل استفاده از یک فریم ورک برای Logging است که در properties قابل فعال شدن است :
logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
خط اول برای فعال شدن Log خروجی کوئری ها است و دومی برای دریافت پارامتر های Prepared Statement است و برای خوانایی بیشتر از گزینه قبل هم میتوان استفاده کرد
Log گرفتن کوئری های JdbcTemplate :
logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG logging.level.org.springframework.jdbc.core.StatementCreatorUtils=TRACE
همانند قبل خط اول برای فعال شدن Log خروجی کوئری ها است و دومی برای دریافت پارامتر های Prepared Statement است و برای خوانایی بیشتر از گزینه قبل هم میتوان استفاده کرد