Rename logging.file to logging.file.name
See gh-15089
This commit is contained in:
committed by
Stephane Nicoll
parent
56ae9cfc7a
commit
21da4a5d12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2017 the original author or authors.
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.logging.LogFile;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ConditionContext;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
@@ -35,6 +36,7 @@ import org.springframework.util.StringUtils;
|
||||
* {@link EnableAutoConfiguration Auto-configuration} for {@link LogFileWebEndpoint}.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Christian Carriere-Tisseur
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@@ -60,16 +62,26 @@ public class LogFileWebEndpointAutoConfiguration {
|
||||
public ConditionOutcome getMatchOutcome(ConditionContext context,
|
||||
AnnotatedTypeMetadata metadata) {
|
||||
Environment environment = context.getEnvironment();
|
||||
String config = environment.resolvePlaceholders("${logging.file:}");
|
||||
String config = environment
|
||||
.resolvePlaceholders("${" + LogFile.FILE_NAME_PROPERTY + ":}");
|
||||
if (!StringUtils.hasText(config)) {
|
||||
config = environment
|
||||
.resolvePlaceholders("${" + LogFile.FILE_PROPERTY + ":}");
|
||||
}
|
||||
ConditionMessage.Builder message = ConditionMessage.forCondition("Log File");
|
||||
if (StringUtils.hasText(config)) {
|
||||
return ConditionOutcome
|
||||
.match(message.found("logging.file").items(config));
|
||||
.match(message.found(LogFile.FILE_NAME_PROPERTY).items(config));
|
||||
}
|
||||
config = environment
|
||||
.resolvePlaceholders("${" + LogFile.FILE_PATH_PROPERTY + ":}");
|
||||
if (!StringUtils.hasText(config)) {
|
||||
config = environment
|
||||
.resolvePlaceholders("${" + LogFile.PATH_PROPERTY + ":}");
|
||||
}
|
||||
config = environment.resolvePlaceholders("${logging.path:}");
|
||||
if (StringUtils.hasText(config)) {
|
||||
return ConditionOutcome
|
||||
.match(message.found("logging.path").items(config));
|
||||
.match(message.found(LogFile.FILE_PATH_PROPERTY).items(config));
|
||||
}
|
||||
config = environment.getProperty("management.endpoint.logfile.external-file");
|
||||
if (StringUtils.hasText(config)) {
|
||||
|
||||
@@ -34,7 +34,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
@TestPropertySource(properties = "logging.file=src/test/resources/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/sample.log")
|
||||
@TestPropertySource(properties = "logging.file.name=src/test/resources/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/sample.log")
|
||||
public class LogFileWebEndpointDocumentationTests
|
||||
extends MockMvcEndpointDocumentationTests {
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Andy Wilkinson
|
||||
* @author Stephane Nicoll
|
||||
* @author Phillip Webb
|
||||
* @author Christian Carriere-Tisseur
|
||||
*/
|
||||
public class LogFileWebEndpointAutoConfigurationTests {
|
||||
|
||||
@@ -49,12 +50,26 @@ public class LogFileWebEndpointAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
public void logFileWebEndpointIsAutoConfiguredWhenLoggingFileIsSet() {
|
||||
this.contextRunner.withPropertyValues("logging.file.name:test.log").run(
|
||||
(context) -> assertThat(context).hasSingleBean(LogFileWebEndpoint.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void logFileWebEndpointIsAutoConfiguredWhenLoggingFileIsSetWithDeprecatedProperty() {
|
||||
this.contextRunner.withPropertyValues("logging.file:test.log").run(
|
||||
(context) -> assertThat(context).hasSingleBean(LogFileWebEndpoint.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logFileWebEndpointIsAutoConfiguredWhenLoggingPathIsSet() {
|
||||
this.contextRunner.withPropertyValues("logging.file.path:test/logs").run(
|
||||
(context) -> assertThat(context).hasSingleBean(LogFileWebEndpoint.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void logFileWebEndpointIsAutoConfiguredWhenLoggingPathIsSetWithDeprecatedProperty() {
|
||||
this.contextRunner.withPropertyValues("logging.path:test/logs").run(
|
||||
(context) -> assertThat(context).hasSingleBean(LogFileWebEndpoint.class));
|
||||
}
|
||||
@@ -71,7 +86,7 @@ public class LogFileWebEndpointAutoConfigurationTests {
|
||||
@Test
|
||||
public void logFileWebEndpointCanBeDisabled() {
|
||||
this.contextRunner
|
||||
.withPropertyValues("logging.file:test.log",
|
||||
.withPropertyValues("logging.file.name:test.log",
|
||||
"management.endpoint.logfile.enabled:false")
|
||||
.run((context) -> assertThat(context)
|
||||
.hasSingleBean(LogFileWebEndpoint.class));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2017 the original author or authors.
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -70,7 +70,7 @@ public class LogFileWebEndpoint {
|
||||
}
|
||||
LogFile logFile = LogFile.get(this.environment);
|
||||
if (logFile == null) {
|
||||
logger.debug("Missing 'logging.file' or 'logging.path' properties");
|
||||
logger.debug("Missing 'logging.file.name' or 'logging.file.path' properties");
|
||||
return null;
|
||||
}
|
||||
return new FileSystemResource(logFile.toString());
|
||||
|
||||
@@ -63,12 +63,22 @@ public class LogFileWebEndpointTests {
|
||||
|
||||
@Test
|
||||
public void nullResponseWithMissingLogFile() {
|
||||
this.environment.setProperty("logging.file", "no_test.log");
|
||||
this.environment.setProperty("logging.file.name", "no_test.log");
|
||||
assertThat(this.endpoint.logFile()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resourceResponseWithLogFile() throws Exception {
|
||||
this.environment.setProperty("logging.file.name", this.logFile.getAbsolutePath());
|
||||
Resource resource = this.endpoint.logFile();
|
||||
assertThat(resource).isNotNull();
|
||||
assertThat(StreamUtils.copyToString(resource.getInputStream(),
|
||||
StandardCharsets.UTF_8)).isEqualTo("--TEST--");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void resourceResponseWithLogFileAndDeprecatedProperty() throws Exception {
|
||||
this.environment.setProperty("logging.file", this.logFile.getAbsolutePath());
|
||||
Resource resource = this.endpoint.logFile();
|
||||
assertThat(resource).isNotNull();
|
||||
|
||||
@@ -65,7 +65,7 @@ public class LogFileWebEndpointWebIntegrationTests {
|
||||
|
||||
@Test
|
||||
public void getRequestProducesResponseWithLogFile() {
|
||||
TestPropertyValues.of("logging.file:" + this.logFile.getAbsolutePath())
|
||||
TestPropertyValues.of("logging.file.name:" + this.logFile.getAbsolutePath())
|
||||
.applyTo(context);
|
||||
client.get().uri("/actuator/logfile").exchange().expectStatus().isOk()
|
||||
.expectBody(String.class).isEqualTo("--TEST--");
|
||||
|
||||
@@ -37,12 +37,12 @@ content into your application. Rather, pick only the properties that you need.
|
||||
# LOGGING
|
||||
logging.config= # Location of the logging configuration file. For instance, `classpath:logback.xml` for Logback.
|
||||
logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.
|
||||
logging.file= # Log file name (for instance, `myapp.log`). Names can be an exact location or relative to the current directory.
|
||||
logging.file.name= # Log file name (for instance, `myapp.log`). Names can be an exact location or relative to the current directory.
|
||||
logging.file.max-history=0 # Maximum of archive log files to keep. Only supported with the default logback setup.
|
||||
logging.file.max-size=10MB # Maximum log file size. Only supported with the default logback setup.
|
||||
logging.group.*= # Log groups to quickly change multiple loggers at the same time. For instance, `logging.level.db=org.hibernate,org.springframework.jdbc`.
|
||||
logging.level.*= # Log levels severity mapping. For instance, `logging.level.org.springframework=DEBUG`.
|
||||
logging.path= # Location of the log file. For instance, `/var/log`.
|
||||
logging.file.path= # Location of the log file. For instance, `/var/log`.
|
||||
logging.pattern.console= # Appender pattern for output to the console. Supported only with the default Logback setup.
|
||||
logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss.SSS # Appender pattern for log date format. Supported only with the default Logback setup.
|
||||
logging.pattern.file= # Appender pattern for output to a file. Supported only with the default Logback setup.
|
||||
|
||||
@@ -1518,7 +1518,7 @@ in the following example:
|
||||
----
|
||||
|
||||
You can also set the location of a file to which to write the log (in addition to the
|
||||
console) by using "logging.file".
|
||||
console) by using "logging.file.name".
|
||||
|
||||
To configure the more fine-grained settings of a logging system, you need to use the native
|
||||
configuration format supported by the `LoggingSystem` in question. By default, Spring Boot
|
||||
@@ -1548,8 +1548,8 @@ If you look at `base.xml` in the spring-boot jar, you can see that it uses
|
||||
some useful System properties that the `LoggingSystem` takes care of creating for you:
|
||||
|
||||
* `${PID}`: The current process ID.
|
||||
* `${LOG_FILE}`: Whether `logging.file` was set in Boot's external configuration.
|
||||
* `${LOG_PATH}`: Whether `logging.path` (representing a directory for
|
||||
* `${LOG_FILE}`: Whether `logging.file.name` was set in Boot's external configuration.
|
||||
* `${LOG_PATH}`: Whether `logging.file.path` (representing a directory for
|
||||
log files to live in) was set in Boot's external configuration.
|
||||
* `${LOG_EXCEPTION_CONVERSION_WORD}`: Whether `logging.exception-conversion-word` was set
|
||||
in Boot's external configuration.
|
||||
@@ -1582,12 +1582,12 @@ shown in the following example:
|
||||
</configuration>
|
||||
----
|
||||
|
||||
You also need to add `logging.file` to your `application.properties`, as shown in the
|
||||
You also need to add `logging.file.name` to your `application.properties`, as shown in the
|
||||
following example:
|
||||
|
||||
[source,properties,indent=0,subs="verbatim,quotes,attributes"]
|
||||
----
|
||||
logging.file=myapplication.log
|
||||
logging.file.name=myapplication.log
|
||||
----
|
||||
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ use the following additional endpoints:
|
||||
|Yes
|
||||
|
||||
|`logfile`
|
||||
|Returns the contents of the logfile (if `logging.file` or `logging.path` properties have
|
||||
|Returns the contents of the logfile (if `logging.file.name` or `logging.file.path` properties have
|
||||
been set). Supports the use of the HTTP `Range` header to retrieve part of the log file's
|
||||
content.
|
||||
|Yes
|
||||
|
||||
@@ -1686,7 +1686,7 @@ The following colors and styles are supported:
|
||||
=== File Output
|
||||
By default, Spring Boot logs only to the console and does not write log files. If you
|
||||
want to write log files in addition to the console output, you need to set a
|
||||
`logging.file` or `logging.path` property (for example, in your
|
||||
`logging.file.name` or `logging.file.path` property (for example, in your
|
||||
`application.properties`).
|
||||
|
||||
The following table shows how the `logging.*` properties can be used together:
|
||||
@@ -1694,7 +1694,7 @@ The following table shows how the `logging.*` properties can be used together:
|
||||
.Logging properties
|
||||
[cols="1,1,1,4"]
|
||||
|===
|
||||
|`logging.file` |`logging.path` |Example |Description
|
||||
|`logging.file.name` |`logging.file.path` |Example |Description
|
||||
|
||||
|_(none)_
|
||||
|_(none)_
|
||||
@@ -1835,7 +1835,7 @@ To help with the customization, some other properties are transferred from the S
|
||||
|`LOG_EXCEPTION_CONVERSION_WORD`
|
||||
|The conversion word used when logging exceptions.
|
||||
|
||||
|`logging.file`
|
||||
|`logging.file.name`
|
||||
|`LOG_FILE`
|
||||
|If defined, it is used in the default log configuration.
|
||||
|
||||
@@ -1849,7 +1849,7 @@ setup.)
|
||||
|Maximum number of archive log files to keep (if LOG_FILE enabled). (Only supported with
|
||||
the default Logback setup.)
|
||||
|
||||
|`logging.path`
|
||||
|`logging.file.path`
|
||||
|`LOG_PATH`
|
||||
|If defined, it is used in the default log configuration.
|
||||
|
||||
|
||||
@@ -68,8 +68,8 @@ import org.springframework.util.StringUtils;
|
||||
* {@literal java -jar myapp.jar [--debug | --trace]}). If you prefer to ignore these
|
||||
* properties you can set {@link #setParseArgs(boolean) parseArgs} to {@code false}.
|
||||
* <p>
|
||||
* By default, log output is only written to the console. If a log file is required the
|
||||
* {@code logging.path} and {@code logging.file} properties can be used.
|
||||
* By default, log output is only written to the console. If a log file is required, the
|
||||
* {@code logging.file.path} and {@code logging.file.name} properties can be used.
|
||||
* <p>
|
||||
* Some system properties may be set as side effects, and these can be useful if the
|
||||
* logging configuration supports placeholders (i.e. log4j or logback):
|
||||
|
||||
@@ -25,11 +25,12 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* A reference to a log output file. Log output files are specified using
|
||||
* {@code logging.file} or {@code logging.path} {@link Environment} properties. If the
|
||||
* {@code logging.file} property is not specified {@code "spring.log"} will be written in
|
||||
* the {@code logging.path} directory.
|
||||
* {@code logging.file.name} or {@code logging.file.path} {@link Environment} properties.
|
||||
* If the {@code logging.file.name} property is not specified {@code "spring.log"} will be
|
||||
* written in the {@code logging.file.path} directory.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Christian Carriere-Tisseur
|
||||
* @since 1.2.1
|
||||
* @see #get(PropertyResolver)
|
||||
*/
|
||||
@@ -38,15 +39,33 @@ public class LogFile {
|
||||
/**
|
||||
* The name of the Spring property that contains the name of the log file. Names can
|
||||
* be an exact location or relative to the current directory.
|
||||
* @deprecated since 2.2.0 in favor of {@link #FILE_NAME_PROPERTY}
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String FILE_PROPERTY = "logging.file";
|
||||
|
||||
/**
|
||||
* The name of the Spring property that contains the directory where log files are
|
||||
* written.
|
||||
* @deprecated since 2.2.0 in favor of {@link #FILE_PATH_PROPERTY}
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String PATH_PROPERTY = "logging.path";
|
||||
|
||||
/**
|
||||
* The name of the Spring property that contains the name of the log file. Names can
|
||||
* be an exact location or relative to the current directory.
|
||||
* @since 2.2.0
|
||||
*/
|
||||
public static final String FILE_NAME_PROPERTY = "logging.file.name";
|
||||
|
||||
/**
|
||||
* The name of the Spring property that contains the directory where log files are
|
||||
* written.
|
||||
* @since 2.2.0
|
||||
*/
|
||||
public static final String FILE_PATH_PROPERTY = "logging.file.path";
|
||||
|
||||
private final String file;
|
||||
|
||||
private final String path;
|
||||
@@ -113,8 +132,14 @@ public class LogFile {
|
||||
* suitable properties
|
||||
*/
|
||||
public static LogFile get(PropertyResolver propertyResolver) {
|
||||
String file = propertyResolver.getProperty(FILE_PROPERTY);
|
||||
String path = propertyResolver.getProperty(PATH_PROPERTY);
|
||||
String file = propertyResolver.getProperty(FILE_NAME_PROPERTY);
|
||||
String path = propertyResolver.getProperty(FILE_PATH_PROPERTY);
|
||||
if (file == null) {
|
||||
file = propertyResolver.getProperty(FILE_PROPERTY);
|
||||
}
|
||||
if (path == null) {
|
||||
path = propertyResolver.getProperty(PATH_PROPERTY);
|
||||
}
|
||||
if (StringUtils.hasLength(file) || StringUtils.hasLength(path)) {
|
||||
return new LogFile(file, path);
|
||||
}
|
||||
|
||||
@@ -68,11 +68,17 @@
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
|
||||
},
|
||||
{
|
||||
"name": "logging.file",
|
||||
"name": "logging.file.name",
|
||||
"type": "java.lang.String",
|
||||
"description": "Log file name (for instance, `myapp.log`). Names can be an exact location or relative to the current directory.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
|
||||
},
|
||||
{
|
||||
"name": "logging.file.path",
|
||||
"type": "java.lang.String",
|
||||
"description": "Location of the log file. For instance, `/var/log`.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
|
||||
},
|
||||
{
|
||||
"name": "logging.file.max-size",
|
||||
"type": "java.lang.String",
|
||||
@@ -99,12 +105,6 @@
|
||||
"description": "Log levels severity mapping. For instance, `logging.level.org.springframework=DEBUG`.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
|
||||
},
|
||||
{
|
||||
"name": "logging.path",
|
||||
"type": "java.lang.String",
|
||||
"description": "Location of the log file. For instance, `/var/log`.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener"
|
||||
},
|
||||
{
|
||||
"name": "logging.pattern.console",
|
||||
"type": "java.lang.String",
|
||||
@@ -332,8 +332,28 @@
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Application index.",
|
||||
"deprecation": {
|
||||
"level": "error",
|
||||
"reason": "Application context ids are now unique by default."
|
||||
"reason": "Application context ids are now unique by default.",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "logging.file",
|
||||
"type": "java.lang.String",
|
||||
"description": "Log file name (for instance, `myapp.log`). Names can be an exact location or relative to the current directory.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener",
|
||||
"deprecation": {
|
||||
"replacement": "logging.file.name",
|
||||
"level": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "logging.path",
|
||||
"type": "java.lang.String",
|
||||
"description": "Location of the log file. For instance, `/var/log`.",
|
||||
"sourceType": "org.springframework.boot.context.logging.LoggingApplicationListener",
|
||||
"deprecation": {
|
||||
"replacement": "logging.file.path",
|
||||
"level": "error"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -346,7 +366,6 @@
|
||||
"parameters": {
|
||||
"group": false
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -100,13 +100,13 @@ public class SpringApplicationBuilderTests {
|
||||
public void propertiesWithRepeatSeparator() {
|
||||
SpringApplicationBuilder application = new SpringApplicationBuilder()
|
||||
.sources(ExampleConfig.class).contextClass(StaticApplicationContext.class)
|
||||
.properties("one=c:\\logging.file", "two=a:b", "three:c:\\logging.file",
|
||||
"four:a:b");
|
||||
.properties("one=c:\\logging.file.name", "two=a:b",
|
||||
"three:c:\\logging.file.name", "four:a:b");
|
||||
this.context = application.run();
|
||||
ConfigurableEnvironment environment = this.context.getEnvironment();
|
||||
assertThat(environment.getProperty("one")).isEqualTo("c:\\logging.file");
|
||||
assertThat(environment.getProperty("one")).isEqualTo("c:\\logging.file.name");
|
||||
assertThat(environment.getProperty("two")).isEqualTo("a:b");
|
||||
assertThat(environment.getProperty("three")).isEqualTo("c:\\logging.file");
|
||||
assertThat(environment.getProperty("three")).isEqualTo("c:\\logging.file.name");
|
||||
assertThat(environment.getProperty("four")).isEqualTo("a:b");
|
||||
}
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ public class LoggingApplicationListenerTests {
|
||||
public void addLogFileProperty() {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.config=classpath:logback-nondefault.xml",
|
||||
"logging.file=target/foo.log");
|
||||
"logging.file.name=target/foo.log");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
Log logger = LogFactory.getLog(LoggingApplicationListenerTests.class);
|
||||
@@ -228,7 +228,7 @@ public class LoggingApplicationListenerTests {
|
||||
public void addLogFilePropertyWithDefault() {
|
||||
assertThat(new File("target/foo.log").exists()).isFalse();
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.file=target/foo.log");
|
||||
"logging.file.name=target/foo.log");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
Log logger = LogFactory.getLog(LoggingApplicationListenerTests.class);
|
||||
@@ -240,7 +240,7 @@ public class LoggingApplicationListenerTests {
|
||||
public void addLogPathProperty() {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.config=classpath:logback-nondefault.xml",
|
||||
"logging.path=target/foo/");
|
||||
"logging.file.path=target/foo/");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
Log logger = LogFactory.getLog(LoggingApplicationListenerTests.class);
|
||||
@@ -490,6 +490,31 @@ public class LoggingApplicationListenerTests {
|
||||
|
||||
@Test
|
||||
public void systemPropertiesAreSetForLoggingConfiguration() {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.exception-conversion-word=conversion",
|
||||
"logging.file.name=target/log", "logging.file.path=path",
|
||||
"logging.pattern.console=console", "logging.pattern.file=file",
|
||||
"logging.pattern.level=level");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
assertThat(System.getProperty(LoggingSystemProperties.CONSOLE_LOG_PATTERN))
|
||||
.isEqualTo("console");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.FILE_LOG_PATTERN))
|
||||
.isEqualTo("file");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.EXCEPTION_CONVERSION_WORD))
|
||||
.isEqualTo("conversion");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.LOG_FILE))
|
||||
.isEqualTo("target/log");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.LOG_LEVEL_PATTERN))
|
||||
.isEqualTo("level");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.LOG_PATH))
|
||||
.isEqualTo("path");
|
||||
assertThat(System.getProperty(LoggingSystemProperties.PID_KEY)).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void systemPropertiesAreSetForLoggingConfigurationWithDeprecatedProperties() {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.exception-conversion-word=conversion", "logging.file=target/log",
|
||||
"logging.path=path", "logging.pattern.console=console",
|
||||
@@ -536,7 +561,7 @@ public class LoggingApplicationListenerTests {
|
||||
@Test
|
||||
public void logFilePropertiesCanReferenceSystemProperties() {
|
||||
TestPropertySourceUtils.addInlinedPropertiesToEnvironment(this.context,
|
||||
"logging.file=target/${PID}.log");
|
||||
"logging.file.name=target/${PID}.log");
|
||||
this.initializer.initialize(this.context.getEnvironment(),
|
||||
this.context.getClassLoader());
|
||||
assertThat(System.getProperty(LoggingSystemProperties.LOG_FILE))
|
||||
|
||||
@@ -56,6 +56,20 @@ public class LogFileTests {
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_PATH)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void loggingFileWithDeprecatedProperties() {
|
||||
PropertyResolver resolver = getPropertyResolverWithDeprecatedProperties(
|
||||
"log.file", null);
|
||||
LogFile logFile = LogFile.get(resolver);
|
||||
Properties properties = new Properties();
|
||||
logFile.applyTo(properties);
|
||||
assertThat(logFile.toString()).isEqualTo("log.file");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_FILE))
|
||||
.isEqualTo("log.file");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_PATH)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loggingPath() {
|
||||
PropertyResolver resolver = getPropertyResolver(null, "logpath");
|
||||
@@ -69,6 +83,21 @@ public class LogFileTests {
|
||||
.isEqualTo("logpath");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void loggingPathWithDeprecatedProperties() {
|
||||
PropertyResolver resolver = getPropertyResolverWithDeprecatedProperties(null,
|
||||
"logpath");
|
||||
LogFile logFile = LogFile.get(resolver);
|
||||
Properties properties = new Properties();
|
||||
logFile.applyTo(properties);
|
||||
assertThat(logFile.toString()).isEqualTo("logpath/spring.log");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_FILE))
|
||||
.isEqualTo("logpath/spring.log");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_PATH))
|
||||
.isEqualTo("logpath");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loggingFileAndPath() {
|
||||
PropertyResolver resolver = getPropertyResolver("log.file", "logpath");
|
||||
@@ -82,8 +111,36 @@ public class LogFileTests {
|
||||
.isEqualTo("logpath");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Deprecated
|
||||
public void loggingFileAndPathWithDeprecatedProperties() {
|
||||
PropertyResolver resolver = getPropertyResolverWithDeprecatedProperties(
|
||||
"log.file", "logpath");
|
||||
LogFile logFile = LogFile.get(resolver);
|
||||
Properties properties = new Properties();
|
||||
logFile.applyTo(properties);
|
||||
assertThat(logFile.toString()).isEqualTo("log.file");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_FILE))
|
||||
.isEqualTo("log.file");
|
||||
assertThat(properties.getProperty(LoggingSystemProperties.LOG_PATH))
|
||||
.isEqualTo("logpath");
|
||||
}
|
||||
|
||||
private PropertyResolver getPropertyResolver(String file, String path) {
|
||||
Map<String, Object> properties = new LinkedHashMap<>();
|
||||
properties.put("logging.file.name", file);
|
||||
properties.put("logging.file.path", path);
|
||||
PropertySource<?> propertySource = new MapPropertySource("properties",
|
||||
properties);
|
||||
MutablePropertySources propertySources = new MutablePropertySources();
|
||||
propertySources.addFirst(propertySource);
|
||||
return new PropertySourcesPropertyResolver(propertySources);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private PropertyResolver getPropertyResolverWithDeprecatedProperties(String file,
|
||||
String path) {
|
||||
Map<String, Object> properties = new LinkedHashMap<>();
|
||||
properties.put("logging.file", file);
|
||||
properties.put("logging.path", path);
|
||||
PropertySource<?> propertySource = new MapPropertySource("properties",
|
||||
|
||||
@@ -3,7 +3,7 @@ service.name=Phil
|
||||
spring.security.user.name=user
|
||||
spring.security.user.password=password
|
||||
|
||||
# logging.file=/tmp/logs/app.log
|
||||
# logging.file.name=/tmp/logs/app.log
|
||||
# logging.level.org.springframework.security=DEBUG
|
||||
management.server.address=127.0.0.1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user