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

@ -35,6 +35,7 @@ import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder; import org.junit.rules.TemporaryFolder;
import org.slf4j.bridge.SLF4JBridgeHandler; import org.slf4j.bridge.SLF4JBridgeHandler;
import org.springframework.boot.ApplicationPid;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.boot.logging.java.JavaLoggingSystem; import org.springframework.boot.logging.java.JavaLoggingSystem;
@ -430,6 +431,16 @@ public class LoggingApplicationListenerTests {
assertThat(System.getProperty("PID")).isNotNull(); 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() { private boolean bridgeHandlerInstalled() {
Logger rootLogger = LogManager.getLogManager().getLogger(""); Logger rootLogger = LogManager.getLogManager().getLogger("");
Handler[] handlers = rootLogger.getHandlers(); Handler[] handlers = rootLogger.getHandlers();

Loading…
Cancel
Save