#java #spring #hibernate #spring-data-jpa #batch-processing
Вопрос:
Я хочу распечатать конкретный запрос на гибернацию в среде UAT. Однако я не хочу включать ведение журнала гибернации для всех запросов, так как это приведет к созданию огромных журналов. Есть ли способ включить ведение журнала запросов в режиме гибернации с помощью кода java непосредственно перед запросом, который я хочу распечатать, а затем немедленно отключить его? Пожалуйста, обратите внимание, что я использую репозиторий Spring data Jpa.
Ответ №1:
Это зависит от используемой библиотеки журналов.
Я думаю, что Spring использует SLF4J и logback, поэтому должно сработать что-то вроде следующего:
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.hibernate.SQL").setLevel(Level.DEBUG);
а затем установить
loggerContext.getLogger("org.hibernate.SQL").setLevel(Level.ERROR);
Ответ №2:
Есть возможность выполнить индивидуальное ведение журнала с помощью logback, но не уверен, что это поможет регистрировать конкретные журналы SQL.
Воспользуйтесь этой ссылкой-https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.logging
Комментарии:
1. Как я уже упоминал в вопросе, я не хочу делать это на уровне приложения. Я хочу сделать это программно только для определенного блока кода