Clarify log message with a profile containing a comma

See gh-29896
This commit is contained in:
gcoppex 2022-02-17 19:14:28 +01:00 committed by Stephane Nicoll
parent 5baa71f1b3
commit c8466a14e9
2 changed files with 19 additions and 4 deletions

View File

@ -667,13 +667,19 @@ public class SpringApplication {
Log log = getApplicationLog();
if (log.isInfoEnabled()) {
String[] activeProfiles = context.getEnvironment().getActiveProfiles();
for (int i = 0; i < activeProfiles.length; i++) {
activeProfiles[i] = "\"" + activeProfiles[i] + "\"";
}
if (ObjectUtils.isEmpty(activeProfiles)) {
String[] defaultProfiles = context.getEnvironment().getDefaultProfiles();
log.info("No active profile set, falling back to default profiles: "
for (int i = 0; i < defaultProfiles.length; i++) {
defaultProfiles[i] = "\"" + defaultProfiles[i] + "\"";
}
log.info("No active profile set, falling back to " + defaultProfiles.length + " default profile(s): "
+ StringUtils.arrayToCommaDelimitedString(defaultProfiles));
}
else {
log.info("The following profiles are active: "
log.info("The following " + activeProfiles.length + " profile(s) are active: "
+ StringUtils.arrayToCommaDelimitedString(activeProfiles));
}
}

View File

@ -253,7 +253,7 @@ class SpringApplicationTests {
SpringApplication application = new SpringApplication(ExampleConfig.class);
application.setWebApplicationType(WebApplicationType.NONE);
this.context = application.run();
assertThat(output).contains("No active profile set, falling back to default profiles: default");
assertThat(output).contains("No active profile set, falling back to 1 default profile(s): \"default\"");
}
@Test
@ -261,7 +261,7 @@ class SpringApplicationTests {
SpringApplication application = new SpringApplication(ExampleConfig.class);
application.setWebApplicationType(WebApplicationType.NONE);
this.context = application.run("--spring.profiles.active=myprofiles");
assertThat(output).contains("The following profiles are active: myprofile");
assertThat(output).contains("The following 1 profile(s) are active: \"myprofiles\"");
}
@Test
@ -273,6 +273,15 @@ class SpringApplicationTests {
assertThat(output).contains("o.s.b.SpringApplication");
}
@Test
void logsMultipleActiveProfilesWithComma(CapturedOutput output) {
SpringApplication application = new SpringApplication(ExampleConfig.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.setAdditionalProfiles("p1,p2", "p3");
application.run();
assertThat(output).contains("The following 2 profile(s) are active: \"p1,p2\",\"p3\"");
}
@Test
void setIgnoreBeanInfoPropertyByDefault(CapturedOutput output) {
SpringApplication application = new SpringApplication(ExampleConfig.class);