Merge branch '1.3.x'

pull/5289/head
Andy Wilkinson 9 years ago
commit 41f0a5cdca

@ -247,16 +247,18 @@ public class LoggingApplicationListener implements GenericApplicationListener {
*/
protected void initialize(ConfigurableEnvironment environment,
ClassLoader classLoader) {
setSystemProperties(environment);
LogFile logFile = LogFile.get(environment);
setSystemProperties(environment, logFile);
if (logFile != null) {
logFile.applyToSystemProperties();
}
initializeEarlyLoggingLevel(environment);
initializeSystem(environment, this.loggingSystem, logFile);
initializeFinalLoggingLevels(environment, this.loggingSystem);
registerShutdownHookIfNecessary(environment, this.loggingSystem);
}
private void setSystemProperties(ConfigurableEnvironment environment,
LogFile logFile) {
private void setSystemProperties(ConfigurableEnvironment environment) {
RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(
environment, "logging.");
setSystemProperty(propertyResolver, EXCEPTION_CONVERSION_WORD,
@ -265,9 +267,6 @@ public class LoggingApplicationListener implements GenericApplicationListener {
setSystemProperty(propertyResolver, FILE_LOG_PATTERN, "pattern.file");
setSystemProperty(propertyResolver, LOG_LEVEL_PATTERN, "pattern.level");
setSystemProperty(PID_KEY, new ApplicationPid().toString());
if (logFile != null) {
logFile.applyToSystemProperties();
}
}
private void setSystemProperty(RelaxedPropertyResolver propertyResolver,

@ -35,6 +35,7 @@ import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;
import org.slf4j.bridge.SLF4JBridgeHandler;
import org.springframework.boot.ApplicationPid;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.boot.logging.java.JavaLoggingSystem;
@ -430,6 +431,16 @@ public class LoggingApplicationListenerTests {
assertThat(System.getProperty("PID")).isNotNull();
}
@Test
public void logFilePropertiesCanReferenceSystemProperties() {
EnvironmentTestUtils.addEnvironment(this.context,
"logging.file=target/${PID}.log");
this.initializer.initialize(this.context.getEnvironment(),
this.context.getClassLoader());
assertThat(System.getProperty("LOG_FILE"))
.isEqualTo("target/" + new ApplicationPid().toString() + ".log");
}
private boolean bridgeHandlerInstalled() {
Logger rootLogger = LogManager.getLogManager().getLogger("");
Handler[] handlers = rootLogger.getHandlers();

Loading…
Cancel
Save