Можно использовать
datasource-proxy
Он позволяет логгировать все запросы, а так же если это не нужно, настроить логгирование только для "тяжелых запросов", которые выполняются больше n секунд по времени.
Запись в логе выглядит так:
Name:MyDS, Time:1, Success:True, Type:Statement, Batch:False, QuerySize:1, BatchSize:0, Query:["CREATE TABLE users (id INT, name VARCHAR(20))"], Params:[]
Name:MyDS, Time:0, Success:True, Type:Prepared, Batch:True, QuerySize:1, BatchSize:2, Query:["INSERT INTO users (id, name) VALUES (?, ?)"], Params:[(1=1,2=foo),(1=2,2=bar)]
Name:MyDS, Time:1, Success:True, Type:Prepared, Batch:True, QuerySize:1, BatchSize:2, Query:["INSERT INTO users (id, name) VALUES (?, ?)"], Params:[(1=3,2=FOO),(1=4,2=BAR)]
Name:MyDS, Time:3, Success:True, Type:Statement, Batch:False, QuerySize:1, BatchSize:0, Query:["SELECT COUNT(*) FROM users"], Params:[]
Примеры конфигураций и настройки можно посмотреть
вот здесь
Простой пример конфигурации :
DataSource db = ProxyDataSourceBuilder
.create(actualDataSource)
.logQueryByCommons(INFO) // or logQueryBySlf4j(INFO)
.build();