From 838e0ef33e6b8596b21984c63085896b7ef75e2b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 3 Aug 2015 16:18:07 +0100 Subject: [PATCH] Polish contribution - Extract the logic that coerces the string into a LogLevel into a separate method. - Add a test that verifies that false is mapped to LogLevel.OFF Closes gh-3628 --- .../boot/logging/LoggingApplicationListener.java | 14 ++++++++------ .../logging/LoggingApplicationListenerTests.java | 12 ++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java index 4d6873b844..958a553e65 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java @@ -246,18 +246,20 @@ public class LoggingApplicationListener implements SmartApplicationListener { name = null; } level = environment.resolvePlaceholders(level); - if (Boolean.toString(false).equalsIgnoreCase(level)) { - system.setLogLevel(name, LogLevel.OFF); - } - else { - system.setLogLevel(name, LogLevel.valueOf(level.toUpperCase())); - } + system.setLogLevel(name, coerceLogLevel(level)); } catch (RuntimeException ex) { this.logger.error("Cannot set level: " + level + " for '" + name + "'"); } } + private LogLevel coerceLogLevel(String level) { + if ("false".equalsIgnoreCase(level)) { + return LogLevel.OFF; + } + return LogLevel.valueOf(level.toUpperCase()); + } + public void setOrder(int order) { this.order = order; } diff --git a/spring-boot/src/test/java/org/springframework/boot/logging/LoggingApplicationListenerTests.java b/spring-boot/src/test/java/org/springframework/boot/logging/LoggingApplicationListenerTests.java index 7eceeb3dbb..e413306793 100644 --- a/spring-boot/src/test/java/org/springframework/boot/logging/LoggingApplicationListenerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/logging/LoggingApplicationListenerTests.java @@ -258,6 +258,18 @@ public class LoggingApplicationListenerTests { assertThat(this.outputCapture.toString(), not(containsString("testatfatal"))); } + @Test + public void parseLevelsMapsFalseToOff() throws Exception { + EnvironmentTestUtils.addEnvironment(this.context, + "logging.level.org.springframework.boot=false"); + this.initializer.initialize(this.context.getEnvironment(), + this.context.getClassLoader()); + this.logger.debug("testatdebug"); + this.logger.fatal("testatfatal"); + assertThat(this.outputCapture.toString(), not(containsString("testatdebug"))); + assertThat(this.outputCapture.toString(), not(containsString("testatfatal"))); + } + @Test public void parseArgsDisabled() throws Exception { this.initializer.setParseArgs(false);