From a001e28be78de8d4e397516be48819c27198410a Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Fri, 22 Feb 2019 14:27:01 +0200 Subject: [PATCH] web and sql groups are being expanded to the logger names that each represents. gh-15986 --- .../logging/LoggingApplicationListener.java | 14 +++++++------- .../LoggingApplicationListenerTests.java | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java index 59277ba2ec74..2f669ab4b01b 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/logging/LoggingApplicationListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.logging.Log; @@ -320,12 +321,11 @@ private void initializeFinalLoggingLevels(ConfigurableEnvironment environment, } protected void initializeLogLevel(LoggingSystem system, LogLevel level) { - List loggers = LOG_LEVEL_LOGGERS.get(level); - if (loggers != null) { - for (String logger : loggers) { - system.setLogLevel(logger, level); - } - } + Optional.ofNullable(LOG_LEVEL_LOGGERS.get(level)).orElse(Collections.emptyList()) + .stream() + .flatMap(logger -> DEFAULT_GROUP_LOGGERS + .getOrDefault(logger, Collections.singletonList(logger)).stream()) + .forEach(logger -> system.setLogLevel(logger, level)); } protected void setLogLevels(LoggingSystem system, Environment environment) { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerTests.java index 530964a5d80e..21ef39f9b7f3 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -315,6 +315,21 @@ public void parseDebugArg() { assertThat(this.outputCapture.toString()).doesNotContain("testattrace"); } + @Test + public void parseDebugArgExpandGroups() { + addPropertiesToEnvironment(this.context, "debug"); + this.initializer.initialize(this.context.getEnvironment(), + this.context.getClassLoader()); + ch.qos.logback.classic.Logger sqlGroup = this.loggerContext + .getLogger("org.hibernate.SQL"); + ch.qos.logback.classic.Logger webGroup = this.loggerContext + .getLogger("org.springframework.boot.actuate.endpoint.web"); + webGroup.debug("testdebugwebgroup"); + sqlGroup.debug("testdebugsqlgroup"); + assertThat(this.outputCapture.toString()).contains("testdebugwebgroup"); + assertThat(this.outputCapture.toString()).contains("testdebugsqlgroup"); + } + @Test public void parseTraceArg() { addPropertiesToEnvironment(this.context, "trace");