Allow flyway loggers to be configured and provide SLF4J default
Add `spring.flyway.loggers` property which can be used to configure Flyway loggers and has a default value of "slf4j". Closes gh-35158
This commit is contained in:
parent
022004d780
commit
cf95ae92ea
|
@ -245,6 +245,8 @@ public class FlywayAutoConfiguration {
|
||||||
.to((prefix) -> configuration.scriptPlaceholderPrefix(prefix));
|
.to((prefix) -> configuration.scriptPlaceholderPrefix(prefix));
|
||||||
map.from(properties.getScriptPlaceholderSuffix())
|
map.from(properties.getScriptPlaceholderSuffix())
|
||||||
.to((suffix) -> configuration.scriptPlaceholderSuffix(suffix));
|
.to((suffix) -> configuration.scriptPlaceholderSuffix(suffix));
|
||||||
|
map.from(properties.isExecuteInTransaction()).to(configuration::executeInTransaction);
|
||||||
|
map.from(properties::getLoggers).to(configuration::loggers);
|
||||||
// Flyway Teams properties
|
// Flyway Teams properties
|
||||||
map.from(properties.getBatch()).to(configuration::batch);
|
map.from(properties.getBatch()).to(configuration::batch);
|
||||||
map.from(properties.getDryRunOutput()).to(configuration::dryRunOutput);
|
map.from(properties.getDryRunOutput()).to(configuration::dryRunOutput);
|
||||||
|
@ -269,7 +271,6 @@ public class FlywayAutoConfiguration {
|
||||||
.as((patterns) -> patterns.toArray(new String[0]))
|
.as((patterns) -> patterns.toArray(new String[0]))
|
||||||
.to(configuration::ignoreMigrationPatterns);
|
.to(configuration::ignoreMigrationPatterns);
|
||||||
map.from(properties.getDetectEncoding()).to(configuration::detectEncoding);
|
map.from(properties.getDetectEncoding()).to(configuration::detectEncoding);
|
||||||
map.from(properties.isExecuteInTransaction()).to(configuration::executeInTransaction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configureSqlServerKerberosLoginFile(FluentConfiguration configuration,
|
private void configureSqlServerKerberosLoginFile(FluentConfiguration configuration,
|
||||||
|
|
|
@ -367,6 +367,11 @@ public class FlywayProperties {
|
||||||
*/
|
*/
|
||||||
private boolean executeInTransaction = true;
|
private boolean executeInTransaction = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loggers Flyway should use.
|
||||||
|
*/
|
||||||
|
private String[] loggers = { "slf4j" };
|
||||||
|
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return this.enabled;
|
return this.enabled;
|
||||||
}
|
}
|
||||||
|
@ -855,4 +860,12 @@ public class FlywayProperties {
|
||||||
this.executeInTransaction = executeInTransaction;
|
this.executeInTransaction = executeInTransaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String[] getLoggers() {
|
||||||
|
return this.loggers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLoggers(String[] loggers) {
|
||||||
|
this.loggers = loggers;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -763,6 +763,21 @@ class FlywayAutoConfigurationTests {
|
||||||
.run((context) -> assertThat(context).hasSingleBean(ResourceProviderCustomizer.class));
|
.run((context) -> assertThat(context).hasSingleBean(ResourceProviderCustomizer.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void loggers() {
|
||||||
|
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
|
||||||
|
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getLoggers())
|
||||||
|
.containsExactly("slf4j"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void overrideLoggers() {
|
||||||
|
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
|
||||||
|
.withPropertyValues("spring.flyway.loggers=log4j2")
|
||||||
|
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getLoggers())
|
||||||
|
.containsExactly("log4j2"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void shouldRegisterResourceHints() {
|
void shouldRegisterResourceHints() {
|
||||||
RuntimeHints runtimeHints = new RuntimeHints();
|
RuntimeHints runtimeHints = new RuntimeHints();
|
||||||
|
|
Loading…
Reference in New Issue