среда, 4 марта 2015 г.

Настройка logback для записи sql запросов и их параметров в отдельный файл

Пишу чтобы не забыть и не искать в следующий раз, т.к. логгеры настраиваю не так часто.

Цель: логировать все SQL запросы в отдельный файл вместе с их параметрами.
Исходные данные: Для выполнения sql используется Spring JDBC и логгер Logback. Но эти настройки вполне подойдут и для Log4j.


Делаем свой appender, который будет писать логи в заданном формате в нужный нам файл. С этим проблем нет. Не буду выкладывать конфигурацию аппендера сюда. С ним все понятно. Пусть его имя будет "SQL" (name="SQL").

Добавляем такие логгеры:
<logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG" additivity="false">
 <appender-ref ref="SQL" />
</logger>
<logger name="org.springframework.jdbc.core.StatementCreatorUtils" level="TRACE" additivity="false">
 <appender-ref ref="SQL" />
</logger>
Первый тег logger для записи sql запросов. Второй для записи их параметров.
additivity="false" нужно для того, чтобы заданные уровни логирования(level="DEBUG", level="TRACE") распространялись только на заданные аппендеры. Чтобы ни запросы, ни их параметры не попадали в основной лог (корневой логгер). Уровень логирования наследуется независимо от аппендера, если не указать additivity="false", т.е все запросы и параметры попадут еще root логгер и его аппендер. Вот тут очень хорошо на русском это написано.

Комментариев нет:

Отправить комментарий