Minimise dependencies on Log4j2
Closes gh-15441
This commit is contained in:
@@ -17,11 +17,15 @@
|
||||
package org.springframework.boot.actuate.autoconfigure.metrics;
|
||||
|
||||
import io.micrometer.core.instrument.binder.logging.Log4j2Metrics;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.runner.classpath.ClassPathOverrides;
|
||||
import org.springframework.boot.testsupport.runner.classpath.ModifiedClassPathRunner;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -32,7 +36,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
public class Log4J2MetricsAutoConfigurationTests {
|
||||
@RunWith(ModifiedClassPathRunner.class)
|
||||
@ClassPathOverrides("org.apache.logging.log4j:log4j-core:2.11.1")
|
||||
public class Log4J2MetricsWithLog4jLoggerContextAutoConfigurationTests {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.with(MetricsRun.simple()).withConfiguration(
|
||||
@@ -40,12 +46,16 @@ public class Log4J2MetricsAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void autoConfiguresLog4J2Metrics() {
|
||||
assertThat(LogManager.getContext().getClass().getName())
|
||||
.isEqualTo("org.apache.logging.log4j.core.LoggerContext");
|
||||
this.contextRunner
|
||||
.run((context) -> assertThat(context).hasSingleBean(Log4j2Metrics.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allowsCustomLog4J2MetricsToBeUsed() {
|
||||
assertThat(LogManager.getContext().getClass().getName())
|
||||
.isEqualTo("org.apache.logging.log4j.core.LoggerContext");
|
||||
this.contextRunner.withUserConfiguration(CustomLog4J2MetricsConfiguration.class)
|
||||
.run((context) -> assertThat(context).hasSingleBean(Log4j2Metrics.class)
|
||||
.hasBean("customLog4J2Metrics"));
|
||||
@@ -17,15 +17,13 @@
|
||||
package org.springframework.boot.actuate.autoconfigure.metrics;
|
||||
|
||||
import io.micrometer.core.instrument.binder.logging.Log4j2Metrics;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.slf4j.SLF4JLoggerContext;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.testsupport.runner.classpath.ClassPathExclusions;
|
||||
import org.springframework.boot.testsupport.runner.classpath.ClassPathOverrides;
|
||||
import org.springframework.boot.testsupport.runner.classpath.ModifiedClassPathRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -34,10 +32,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
@RunWith(ModifiedClassPathRunner.class)
|
||||
@ClassPathOverrides({ "org.apache.logging.log4j:log4j-to-slf4j:2.11.1",
|
||||
"org.apache.logging.log4j:log4j-core:2.11.1" })
|
||||
@ClassPathExclusions("log4j-slf4j-impl-*.jar")
|
||||
public class Log4J2MetricsWithSlf4jLoggerContextAutoConfigurationTests {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
@@ -46,6 +40,7 @@ public class Log4J2MetricsWithSlf4jLoggerContextAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void backsOffWhenLoggerContextIsBackedBySlf4j() {
|
||||
assertThat(LogManager.getContext()).isInstanceOf(SLF4JLoggerContext.class);
|
||||
this.contextRunner.run(
|
||||
(context) -> assertThat(context).doesNotHaveBean(Log4j2Metrics.class));
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="warn" name="test" packages="">
|
||||
<Properties>
|
||||
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
|
||||
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
|
||||
</Properties>
|
||||
<Appenders>
|
||||
<Console name="STDOUT" target="SYSTEM_OUT" follow="true">
|
||||
<PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}"/>
|
||||
</Console>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Root level="info">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
||||
Reference in New Issue
Block a user