[java] Flyway와 Java 애플리케이션의 데이터베이스 마이그레이션 로그 설정하기

Flyway는 오픈 소스 데이터베이스 마이그레이션 도구로, Java 애플리케이션과 함께 사용할 수 있습니다. Flyway를 사용하면 버전 관리된 스크립트를 사용하여 데이터베이스 스키마를 업데이트하고, 데이터베이스 마이그레이션의 로그를 설정하여 디버깅하고 모니터링할 수 있습니다.

Flyway 로그 설정하기

Flyway의 로그는 여러 단계의 마이그레이션 과정에서 어떤 일이 일어나는지 알려주어 디버깅 및 모니터링에 도움을 줍니다. 로그를 설정하려면 다음과 같은 단계를 따를 수 있습니다.

  1. Java 애플리케이션에 logback.xml 또는 log4j2.xml 파일을 추가합니다. 이 파일은 로그 설정을 위한 설정 파일입니다.
  2. Flyway의 로그 레벨을 설정하여 필요한 정보만 출력하도록 설정합니다.

logback.xml을 사용한 로그 설정

  1. 프로젝트의 classpath에 logback.xml 파일을 생성합니다.
  2. logback.xml 파일에 다음과 같은 설정을 추가합니다.
<configuration>
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>
  
  <logger name="org.flywaydb.core.internal.command.DbMigrate" level="info"/>
  
  <root level="info">
    <appender-ref ref="console"/>
  </root>
</configuration>

위의 설정에서 logger 요소에서 로그 출력 레벨을 설정할 수 있습니다. 여기에서는 Flyway의 DbMigrate 클래스에 대한 로그 레벨을 info로 설정하였습니다. 원하는 로그 레벨에 따라 설정을 조정할 수 있습니다.

log4j2.xml을 사용한 로그 설정

  1. 프로젝트의 classpath에 log4j2.xml 파일을 생성합니다.
  2. log4j2.xml 파일에 다음과 같은 설정을 추가합니다.
<Configuration>
  <Appenders>
    <Console name="console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%thread] %level %logger{35} - %msg%n"/>
    </Console>
  </Appenders>
  
  <Loggers>
    <Logger name="org.flywaydb.core.internal.command.DbMigrate" level="info" additivity="false">
      <AppenderRef ref="console"/>
    </Logger>
    
    <Root level="info">
      <AppenderRef ref="console"/>
    </Root>
  </Loggers>
</Configuration>

위의 설정에서 Logger 요소의 name 속성에 Flyway의 DbMigrate 클래스를 지정하여 해당 클래스의 로그 레벨을 설정할 수 있습니다. 원하는 로그 레벨에 따라 설정을 조정할 수 있습니다.

위의 설정에서는 로그를 콘솔에 출력하도록 설정하였으나, 필요에 따라 파일 등 다른 출력 대상으로 변경할 수 있습니다.

추가 정보

Flyway와 로그 설정에 대한 더 자세한 내용은 공식 문서를 참조하시기 바랍니다.