diff --git a/spring-bootstrap/src/main/java/org/springframework/bootstrap/SpringApplication.java b/spring-bootstrap/src/main/java/org/springframework/bootstrap/SpringApplication.java index a9a30ff8552..dcff5399302 100644 --- a/spring-bootstrap/src/main/java/org/springframework/bootstrap/SpringApplication.java +++ b/spring-bootstrap/src/main/java/org/springframework/bootstrap/SpringApplication.java @@ -347,8 +347,11 @@ public class SpringApplication { } protected void logStartupInfo() { - new StartupInfoLogger(this.mainApplicationClass).log(getApplicationLog()); - getApplicationLog().info("Sources: " + this.sources); + Log applicationLog = getApplicationLog(); + new StartupInfoLogger(this.mainApplicationClass).log(applicationLog); + if (applicationLog.isDebugEnabled()) { + applicationLog.debug("Sources: " + this.sources); + } } /** diff --git a/spring-bootstrap/src/main/java/org/springframework/bootstrap/StartupInfoLogger.java b/spring-bootstrap/src/main/java/org/springframework/bootstrap/StartupInfoLogger.java index 07daa46078d..3a8f8bf7793 100644 --- a/spring-bootstrap/src/main/java/org/springframework/bootstrap/StartupInfoLogger.java +++ b/spring-bootstrap/src/main/java/org/springframework/bootstrap/StartupInfoLogger.java @@ -46,6 +46,15 @@ class StartupInfoLogger { public void log(Log log) { Assert.notNull(log, "Log must not be null"); + if (log.isInfoEnabled()) { + log.info(getStartupMessage()); + } + if (log.isDebugEnabled()) { + log.debug(getRunningMessage()); + } + } + + private String getStartupMessage() { StringBuilder message = new StringBuilder(); message.append("Starting "); message.append(getApplicationName()); @@ -53,13 +62,16 @@ class StartupInfoLogger { message.append(getOn()); message.append(getPid()); message.append(getContext()); - log.info(message); - message.setLength(0); + return message.toString(); + } + + private StringBuilder getRunningMessage() { + StringBuilder message = new StringBuilder(); message.append("Running with Spring Bootstrap"); message.append(getVersion(SpringApplication.class)); message.append(", Spring"); message.append(getVersion(ApplicationContext.class)); - log.info(message); + return message; } private String getApplicationName() { diff --git a/spring-bootstrap/src/main/resources/org/springframework/bootstrap/logging/logback/logback.xml b/spring-bootstrap/src/main/resources/org/springframework/bootstrap/logging/logback/logback.xml index 68f672d6db7..e3854fd7bcd 100644 --- a/spring-bootstrap/src/main/resources/org/springframework/bootstrap/logging/logback/logback.xml +++ b/spring-bootstrap/src/main/resources/org/springframework/bootstrap/logging/logback/logback.xml @@ -32,6 +32,8 @@ - + + + diff --git a/spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerInfoTests.java b/spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerTests.java similarity index 77% rename from spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerInfoTests.java rename to spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerTests.java index fa17d26c87c..bcefcdde20d 100644 --- a/spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerInfoTests.java +++ b/spring-bootstrap/src/test/java/org/springframework/bootstrap/StartUpLoggerTests.java @@ -22,16 +22,18 @@ import org.junit.Test; import static org.junit.Assert.assertTrue; /** + * Tests for {@link StartupInfoLogger}. + * * @author Dave Syer */ -public class StartUpLoggerInfoTests { +public class StartUpLoggerTests { private StringBuffer output = new StringBuffer(); private SimpleLog log = new SimpleLog("test") { @Override protected void write(StringBuffer buffer) { - StartUpLoggerInfoTests.this.output.append(buffer).append("\n"); + StartUpLoggerTests.this.output.append(buffer).append("\n"); }; }; @@ -40,14 +42,6 @@ public class StartUpLoggerInfoTests { new StartupInfoLogger(getClass()).log(this.log); assertTrue("Wrong output: " + this.output, this.output.toString().contains("Starting " + getClass().getSimpleName())); - // System.err.println(this.output); - } - - @Test - public void bootstrapVersionIncluded() { - new StartupInfoLogger(getClass()).log(this.log); - assertTrue("Wrong output: " + this.output, - this.output.toString().contains("Spring Bootstrap v")); } }