[java] Flyway와 Java 애플리케이션의 데이터베이스 마이그레이션 로그 설정하기
Flyway는 오픈 소스 데이터베이스 마이그레이션 도구로, Java 애플리케이션과 함께 사용할 수 있습니다. Flyway를 사용하면 버전 관리된 스크립트를 사용하여 데이터베이스 스키마를 업데이트하고, 데이터베이스 마이그레이션의 로그를 설정하여 디버깅하고 모니터링할 수 있습니다.
Flyway 로그 설정하기
Flyway의 로그는 여러 단계의 마이그레이션 과정에서 어떤 일이 일어나는지 알려주어 디버깅 및 모니터링에 도움을 줍니다. 로그를 설정하려면 다음과 같은 단계를 따를 수 있습니다.
- Java 애플리케이션에
logback.xml
또는log4j2.xml
파일을 추가합니다. 이 파일은 로그 설정을 위한 설정 파일입니다. - Flyway의 로그 레벨을 설정하여 필요한 정보만 출력하도록 설정합니다.
logback.xml을 사용한 로그 설정
- 프로젝트의 classpath에
logback.xml
파일을 생성합니다. 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을 사용한 로그 설정
- 프로젝트의 classpath에
log4j2.xml
파일을 생성합니다. 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와 로그 설정에 대한 더 자세한 내용은 공식 문서를 참조하시기 바랍니다.
- Flyway 공식 문서: https://flywaydb.org/documentation/
- logback 문서: https://logback.qos.ch/manual/index.html
- log4j2 문서: https://logging.apache.org/log4j/2.x/manual/index.html