Я пытаюсь записать SQL непосредственно в файл при запуске профиля dev
. Это мой логбэк. xml
<configuration>
<property name="SQL_LOG_FILE" value="${LOG_PATH:-${LOG_TEMP:-${TMPDIR:-/tmp}}}/${HIBERNATE_LOG_FILE:-hibernate.log}"/>
<springProfile name="dev">
<appender name="SQLDEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${SQL_LOG_FILE}</file>
<encoder>
<charset>utf-8</charset>
<Pattern>%-5level %logger{0} - %msg%n</Pattern>
</encoder>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>utf-8</charset>
<Pattern>[%highlight(%p)] [%t] %c - %m%n</Pattern>
</encoder>
</appender>
<logger name="org.hibernate.SQL" additivity="false" level="DEBUG">
<appender-ref ref="SQLDEBUG"/>
</logger>
<logger name="org.hibernate.type.descriptor.sql" additivity="false" level="TRACE">
<appender-ref ref="SQLDEBUG"/>
</logger>
</springProfile>
<root level="${logback.loglevel}">
<springProfile name="dev">
<appender-ref ref="CONSOLE"/>
</springProfile>
</root>
Я удалил настройки профиля prod
для простоты. logger
для гибернации находится внутри профиля dev
, потому что я не хочу, чтобы он был включен в prod
. Я перепробовал множество комбинаций этих org.hibernate
настроек. Эта версия генерирует SQL журналов, но выводит их только на консоль, но не в файл журнала. Некоторая общая информация о запуске добавляется в файл журнала, но не SQL.
Если я изменю org.hibernate.type.descriptor.sql
на org.hibernate.type
, будет много журналов трассировки стека, которые добавляются непосредственно в файл, но нет SQL.
В некоторых сообщениях рекомендуется использовать org.hibernate.SQL level=TRACE
, но это, похоже, ничего не меняет.
Я также попытался поместить регистратор вне профиля разработчика, но это также не изменило результатов.
Существует много информации о включении логбэка и спящего режима для простого вывода на консоль, но не для отправки SQL в собственный файл журнала.
Я также пробовал включить hibernate.SQL=DEBUG
в IntelliJ, но это дает SQL на консоли, мне не нужно этого делать.
Я пробовал