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<>();
|
||||
ThresholdFilter filter = new ThresholdFilter();
|
||||
filter.setLevel(resolve(config, "${CONSOLE_LOG_THRESHOLD}"));
|
||||
filter.start();
|
||||
appender.addFilter(filter);
|
||||
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
||||
encoder.setPattern(resolve(config, "${CONSOLE_LOG_PATTERN}"));
|
||||
|
@ -114,6 +115,7 @@ class DefaultLogbackConfiguration {
|
|||
RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
|
||||
ThresholdFilter filter = new ThresholdFilter();
|
||||
filter.setLevel(resolve(config, "${FILE_LOG_THRESHOLD}"));
|
||||
filter.start();
|
||||
appender.addFilter(filter);
|
||||
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
|
||||
encoder.setPattern(resolve(config, "${FILE_LOG_PATTERN}"));
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
|||
import java.lang.reflect.Modifier;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
|
@ -87,6 +88,7 @@ import static org.mockito.Mockito.times;
|
|||
* @author Robert Thornton
|
||||
* @author Eddú Meléndez
|
||||
* @author Scott Frederick
|
||||
* @author Moritz Halbritter
|
||||
*/
|
||||
@ExtendWith(OutputCaptureExtension.class)
|
||||
class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
||||
|
@ -706,6 +708,29 @@ class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
|
|||
.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) {
|
||||
this.loggingSystem.getSystemProperties((ConfigurableEnvironment) context.getEnvironment()).apply(logFile);
|
||||
this.loggingSystem.initialize(context, configLocation, logFile);
|
||||
|
|
Loading…
Reference in New Issue