Home / Class/ LogbackConfigurationTests Class — spring-boot Architecture

LogbackConfigurationTests Class — spring-boot Architecture

Architecture documentation for the LogbackConfigurationTests class in LogbackConfigurationTests.java from the spring-boot codebase.

Entity Profile

Source Code

core/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackConfigurationTests.java lines 46–124

class LogbackConfigurationTests {

	@Test
	@WithResource(name = "custom-console-log-pattern.xml", content = """
			<configuration>
				<property name="CONSOLE_LOG_PATTERN" value="foo" />
				<include resource="org/springframework/boot/logging/logback/base.xml" />
			</configuration>
			""")
	void consolePatternCanBeOverridden(@ResourcesRoot File resourcesRoot) throws JoranException {
		JoranConfigurator configurator = new JoranConfigurator();
		LoggerContext context = new LoggerContext();
		configurator.setContext(context);
		configurator.doConfigure(new File(resourcesRoot, "custom-console-log-pattern.xml"));
		Appender<ILoggingEvent> appender = context.getLogger("ROOT").getAppender("CONSOLE");
		assertThat(appender).isInstanceOf(ConsoleAppender.class);
		Encoder<?> encoder = ((ConsoleAppender<?>) appender).getEncoder();
		assertThat(encoder).isInstanceOf(PatternLayoutEncoder.class);
		assertThat(((PatternLayoutEncoder) encoder).getPattern()).isEqualTo("foo");
	}

	@Test
	@WithResource(name = "custom-file-log-pattern.xml", content = """
			<configuration>
				<property name="FILE_LOG_PATTERN" value="bar" />
				<include resource="org/springframework/boot/logging/logback/base.xml" />
			</configuration>
			""")
	void filePatternCanBeOverridden(@ResourcesRoot File resourcesRoot) throws JoranException {
		JoranConfigurator configurator = new JoranConfigurator();
		LoggerContext context = new LoggerContext();
		configurator.setContext(context);
		configurator.doConfigure(new File(resourcesRoot, "custom-file-log-pattern.xml"));
		Appender<ILoggingEvent> appender = context.getLogger("ROOT").getAppender("FILE");
		assertThat(appender).isInstanceOf(FileAppender.class);
		Encoder<?> encoder = ((FileAppender<?>) appender).getEncoder();
		assertThat(encoder).isInstanceOf(PatternLayoutEncoder.class);
		assertThat(((PatternLayoutEncoder) encoder).getPattern()).isEqualTo("bar");
	}

	@Test
	@WithResource(name = "custom-file-log-pattern.xml", content = """
			<configuration>
				<property name="FILE_LOG_PATTERN" value="bar" />
				<include resource="org/springframework/boot/logging/logback/base.xml" />
			</configuration>
			""")
	void defaultRollingFileNamePattern(@ResourcesRoot File resourcesRoot) throws JoranException {
		JoranConfigurator configurator = new JoranConfigurator();
		LoggerContext context = new LoggerContext();
		configurator.setContext(context);
		configurator.doConfigure(new File(resourcesRoot, "custom-file-log-pattern.xml"));
		Appender<ILoggingEvent> appender = context.getLogger("ROOT").getAppender("FILE");
		assertThat(appender).isInstanceOf(RollingFileAppender.class);
		RollingPolicy rollingPolicy = ((RollingFileAppender<?>) appender).getRollingPolicy();
		String fileNamePattern = ((SizeAndTimeBasedRollingPolicy<?>) rollingPolicy).getFileNamePattern();
		assertThat(fileNamePattern).endsWith("spring.log.%d{yyyy-MM-dd}.%i.gz");
	}

	@Test
	@WithResource(name = "custom-file-log-pattern-with-fileNamePattern.xml", content = """
			<configuration>
				<property name="LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN" value="my.log.%d{yyyyMMdd}.%i.gz"/>
				<include resource="org/springframework/boot/logging/logback/base.xml" />
			</configuration>
			""")
	void customRollingFileNamePattern(@ResourcesRoot File resourcesRoot) throws JoranException {
		JoranConfigurator configurator = new JoranConfigurator();
		LoggerContext context = new LoggerContext();
		configurator.setContext(context);
		configurator.doConfigure(new File(resourcesRoot, "custom-file-log-pattern-with-fileNamePattern.xml"));
		Appender<ILoggingEvent> appender = context.getLogger("ROOT").getAppender("FILE");
		assertThat(appender).isInstanceOf(RollingFileAppender.class);
		RollingPolicy rollingPolicy = ((RollingFileAppender<?>) appender).getRollingPolicy();
		String fileNamePattern = ((SizeAndTimeBasedRollingPolicy<?>) rollingPolicy).getFileNamePattern();
		assertThat(fileNamePattern).endsWith("my.log.%d{yyyyMMdd}.%i.gz");
	}

}

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free