Remove automatic devtools web debug logging
Rework `DevToolsPropertyDefaultsPostProcessor` so that web logging no longer defaults to `DEBUG`. The post processor now logs an info hint to suggest the user configure the logging themselves. Closes gh-14575
This commit is contained in:
parent
6e00d13d68
commit
84e72193b3
|
@ -31,6 +31,7 @@ import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.core.env.ConfigurableEnvironment;
|
import org.springframework.core.env.ConfigurableEnvironment;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.core.env.MapPropertySource;
|
import org.springframework.core.env.MapPropertySource;
|
||||||
|
import org.springframework.util.ClassUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link EnvironmentPostProcessor} to add properties that make sense when working at
|
* {@link EnvironmentPostProcessor} to add properties that make sense when working at
|
||||||
|
@ -49,6 +50,12 @@ public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostPro
|
||||||
|
|
||||||
private static final String ENABLED = "spring.devtools.add-properties";
|
private static final String ENABLED = "spring.devtools.add-properties";
|
||||||
|
|
||||||
|
private static final String WEB_LOGGING = "logging.level.web";
|
||||||
|
|
||||||
|
private static final String[] WEB_ENVIRONMENT_CLASSES = {
|
||||||
|
"org.springframework.web.context.ConfigurableWebEnvironment",
|
||||||
|
"org.springframework.boot.web.reactive.context.ConfigurableReactiveWebEnvironment" };
|
||||||
|
|
||||||
private static final Map<String, Object> PROPERTIES;
|
private static final Map<String, Object> PROPERTIES;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -66,18 +73,24 @@ public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostPro
|
||||||
properties.put("server.error.include-stacktrace", "ALWAYS");
|
properties.put("server.error.include-stacktrace", "ALWAYS");
|
||||||
properties.put("server.servlet.jsp.init-parameters.development", "true");
|
properties.put("server.servlet.jsp.init-parameters.development", "true");
|
||||||
properties.put("spring.reactor.stacktrace-mode.enabled", "true");
|
properties.put("spring.reactor.stacktrace-mode.enabled", "true");
|
||||||
properties.put("logging.level.web", "debug");
|
|
||||||
PROPERTIES = Collections.unmodifiableMap(properties);
|
PROPERTIES = Collections.unmodifiableMap(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postProcessEnvironment(ConfigurableEnvironment environment,
|
public void postProcessEnvironment(ConfigurableEnvironment environment,
|
||||||
SpringApplication application) {
|
SpringApplication application) {
|
||||||
if (isLocalApplication(environment) && canAddProperties(environment)) {
|
if (isLocalApplication(environment)) {
|
||||||
logger.info("Devtools property and logging defaults active! Set '" + ENABLED
|
if (canAddProperties(environment)) {
|
||||||
+ "' to 'false' to disable");
|
logger.info("Devtools property defaults active! Set '" + ENABLED
|
||||||
environment.getPropertySources()
|
+ "' to 'false' to disable");
|
||||||
.addLast(new MapPropertySource("devtools", PROPERTIES));
|
environment.getPropertySources()
|
||||||
|
.addLast(new MapPropertySource("devtools", PROPERTIES));
|
||||||
|
}
|
||||||
|
if (isWebApplication(environment)
|
||||||
|
&& !environment.containsProperty(WEB_LOGGING)) {
|
||||||
|
logger.info("For additional web related logging consider "
|
||||||
|
+ "setting the '" + WEB_LOGGING + "' property to 'DEBUG'");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,4 +119,15 @@ public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostPro
|
||||||
return environment.containsProperty("spring.devtools.remote.secret");
|
return environment.containsProperty("spring.devtools.remote.secret");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isWebApplication(Environment environment) {
|
||||||
|
for (String candidate : WEB_ENVIRONMENT_CLASSES) {
|
||||||
|
Class<?> environmentClass = ClassUtils.resolveClassName(candidate,
|
||||||
|
environment.getClass().getClassLoader());
|
||||||
|
if (environmentClass != null && environmentClass.isInstance(environment)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue