• Как реализовать логирование JDBC?

    @Vorh
    Можно использовать 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();
    Ответ написан
    Комментировать