اگر بخواهیم زمان اجرای کوئری ها و پارامترها و تعداد کوئری ها و ... را در کنسول هنگام اجرای اسپرینگ بوت داشته باشیم یک کتابخانه ای برای اینکار در میون maven وجود دارد به اسم
این کتابخانه اطلاعات خوبی از کوئری به ما می دهد یک نمونه از لاگ آن را در کنسول در صفحه بعد می توانید ببینید :
2024-08-12 12:00:00.000 DEBUG 12345 --- [ main ] net.ttddyy.dsproxy.listener.SLF4JQueryLoggingListener: Name:MyDS, Time:5ms, Success:True Type:Prepared, Batch:False, QuerySize:1, BatchSize:0 Query:["SELECT * FROM users WHERE id = ?"] Params:[(1)]
برای نصب و تنظیم این کتابخانه در اسپرینگ بوت به روش زیر عمل میکنیم :
۱ – ابتدا این کتابخانه را به pom.xml اضافه کنید :
<dependency> <groupId>net.ttddyy</groupId> <artifactId>datasource-proxy</artifactId> <version>1.10</version> </dependency>
۲ – این چند خط را در application.properties اضافه کنید :
spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true # Set the logging level for datasource-proxy to DEBUG to see query logs logging.level.net.ttddyy.dsproxy.listener.SLF4JQueryLoggingListener=DEBUG logging.level.net.ttddyy.dsproxy.listener=DEBUG # Set the logging level for the package where your DataSourceConfig class is located logging.level.your.package.DataSourceConfig=DEBUG
۳ – یک کلاس به نام DataSourceConfig ایجاد کنید و این کدها را درون آن قرار دهید :
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource(DataSourceProperties dataSourceProperties) { DataSource originalDataSource = dataSourceProperties.initializeDataSourceBuilder().build(); return ProxyDataSourceBuilder .create(originalDataSource) .name("MyDS") .countQuery() .logQueryBySlf4j() // Log queries using SLF4J (visible in console) .build(); } }
برنامه را اجرا کنید و از لاگ های زیبای این کتابخانه لذت ببرید .