Start Threshold filters in DefaultLogbackConfiguration
Closes gh-36741
This commit is contained in:
parent
5d120faac2
commit
af244e1550
|
@ -100,6 +100,7 @@ class DefaultLogbackConfiguration {
|
||||||
ConsoleAppender<ILoggingEvent> appender = new ConsoleAppender<>();
|
ConsoleAppender<ILoggingEvent> appender = new ConsoleAppender<>();
|
||||||
ThresholdFilter filter = new ThresholdFilter();
|
ThresholdFilter filter = new ThresholdFilter();
|
||||||
filter.setLevel(resolve(config, "${CONSOLE_LOG_THRESHOLD}"));
|
filter.setLevel(resolve(config, "${CONSOLE_LOG_THRESHOLD}"));
|
||||||
|
filter.start();
|
||||||
appender.addFilter(filter);
|
appender.addFilter(filter);
|
||||||
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
||||||
encoder.setPattern(resolve(config, "${CONSOLE_LOG_PATTERN}"));
|
encoder.setPattern(resolve(config, "${CONSOLE_LOG_PATTERN}"));
|
||||||
|
@ -114,6 +115,7 @@ class DefaultLogbackConfiguration {
|
||||||
RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
|
RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
|
||||||
ThresholdFilter filter = new ThresholdFilter();
|
ThresholdFilter filter = new ThresholdFilter();
|
||||||
filter.setLevel(resolve(config, "${FILE_LOG_THRESHOLD}"));
|
filter.setLevel(resolve(config, "${FILE_LOG_THRESHOLD}"));
|
||||||
|
filter.start();
|
||||||
appender.addFilter(filter);
|
appender.addFilter(filter);
|
||||||
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
||||||
encoder.setPattern(resolve(config, "${FILE_LOG_PATTERN}"));
|
encoder.setPattern(resolve(config, "${FILE_LOG_PATTERN}"));
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -87,6 +88,7 @@ import static org.mockito.Mockito.times;
|
||||||
* @author Robert Thornton
|
* @author Robert Thornton
|
||||||
* @author Eddú Meléndez
|
* @author Eddú Meléndez
|
||||||
* @author Scott Frederick
|
* @author Scott Frederick
|
||||||
|
* @author Moritz Halbritter
|
||||||
*/
|
*/
|
||||||
@ExtendWith(OutputCaptureExtension.class)
|
@ExtendWith(OutputCaptureExtension.class)
|
||||||
class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
||||||
|
@ -706,6 +708,29 @@ class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
||||||
.satisfies((ex) -> assertThat(ex.getCause()).isNotInstanceOf(IllegalArgumentException.class));
|
.satisfies((ex) -> assertThat(ex.getCause()).isNotInstanceOf(IllegalArgumentException.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldRespectConsoleThreshold(CapturedOutput output) {
|
||||||
|
this.environment.setProperty("logging.threshold.console", "warn");
|
||||||
|
this.loggingSystem.beforeInitialize();
|
||||||
|
initialize(this.initializationContext, null, null);
|
||||||
|
this.logger.info("Some info message");
|
||||||
|
this.logger.warn("Some warn message");
|
||||||
|
assertThat(output).doesNotContain("Some info message").contains("Some warn message");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldRespectFileThreshold() {
|
||||||
|
this.environment.setProperty("logging.threshold.file", "warn");
|
||||||
|
this.loggingSystem.beforeInitialize();
|
||||||
|
initialize(this.initializationContext, null, getLogFile(null, tmpDir()));
|
||||||
|
this.logger.info("Some info message");
|
||||||
|
this.logger.warn("Some warn message");
|
||||||
|
Path file = Path.of(tmpDir(), "spring.log");
|
||||||
|
assertThat(file).content(StandardCharsets.UTF_8)
|
||||||
|
.doesNotContain("Some info message")
|
||||||
|
.contains("Some warn message");
|
||||||
|
}
|
||||||
|
|
||||||
private void initialize(LoggingInitializationContext context, String configLocation, LogFile logFile) {
|
private void initialize(LoggingInitializationContext context, String configLocation, LogFile logFile) {
|
||||||
this.loggingSystem.getSystemProperties((ConfigurableEnvironment) context.getEnvironment()).apply(logFile);
|
this.loggingSystem.getSystemProperties((ConfigurableEnvironment) context.getEnvironment()).apply(logFile);
|
||||||
this.loggingSystem.initialize(context, configLocation, logFile);
|
this.loggingSystem.initialize(context, configLocation, logFile);
|
||||||
|
|
Loading…
Reference in New Issue