جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی


Spring JDBC و Spring JPA یک لایه انتزاعی روی Native JDBC Api ایجاد کرده اند که باعث میشود توسعه دهندگان از کار کردن با شرایط Native راحت شوند ولی گاهی نیاز است که Native SQL های ساخته شده را برای دیباگ کردن مشاهده کنیم در این بخش به راه های دریافت Log کوئری های Native همراه با Spring Boot میپردازیم



راحتترین راه فعال کردن Logging در application.properties است :

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 است و برای خوانایی بیشتر از گزینه قبل هم میتوان استفاده کرد 




* سطح Log کردن کوئری ها روی DEBUG و TRACE ست شده است و چون بصورت پیش فرض سطح Log روی INFO است لاگ عبارت های SQL نادیده گرفته میشود و ما در properties تنها سطح لاگ را تغییر دادیم









نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی