Skip to content

Commit e663b44

Browse files
author
Dave Syer
committed
For pre-initialization phase use console only
Added basic-* log configuration files that are loaded in the beforeInitialization() phase. They don't contain any file logger so no empty spring.log is ever created. Fixes spring-projectsgh-303
1 parent 825fc2f commit e663b44

File tree

7 files changed

+71
-25
lines changed

7 files changed

+71
-25
lines changed

Diff for: spring-boot/src/main/java/org/springframework/boot/logging/AbstractLoggingSystem.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,12 @@ public void initialize() {
5454
return;
5555
}
5656
}
57+
// Fallback to the non-prefixed value
58+
initialize(getPackagedConfigFile(this.paths[this.paths.length - 1]));
5759
}
5860

5961
protected void initializeWithSensibleDefaults() {
60-
initialize(getPackagedConfigFile(this.paths[this.paths.length - 1]));
62+
initialize(getPackagedConfigFile("basic-" + this.paths[this.paths.length - 1]));
6163
}
6264

6365
protected final String getPackagedConfigFile(String fileName) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
handlers = java.util.logging.ConsoleHandler
2+
.level = INFO
3+
4+
java.util.logging.ConsoleHandler.formatter = org.springframework.boot.logging.java.SimpleFormatter
5+
java.util.logging.ConsoleHandler.level = ALL
6+
7+
org.hibernate.validator.internal.util.Version.level = WARNING
8+
org.apache.coyote.http11.Http11NioProtocol.level = WARNING
9+
org.crsh.plugin.level = WARNING
10+
org.apache.tomcat.util.net.NioSelectorPool.level = WARNING
11+
org.apache.catalina.startup.DigesterFactory.level = SEVERE
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
log4j.rootCategory=INFO, CONSOLE, FILE
2+
3+
PID=????
4+
LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] boot%X{context} - ${PID} %5p [%t] --- %c{1}: %m%n
5+
6+
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
7+
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
8+
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
9+
log4j.appender.CONSOLE.layout.ConversionPattern=${LOG_PATTERN}
10+
11+
log4j.category.org.hibernate.validator.internal.util.Version=WARN
12+
log4j.category.org.apache.coyote.http11.Http11NioProtocol=WARN
13+
log4j.category.org.crsh.plugin=WARN
14+
log4j.category.org.apache.tomcat.util.net.NioSelectorPool=WARN
15+
log4j.category.org.apache.catalina.startup.DigesterFactory=ERROR
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<included>
3-
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-/tmp/}spring.log}"/>
4-
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/>
5-
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t{14}]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
63

7-
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
8-
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
4+
<include resource="org/springframework/boot/logging/logback/default-logback.xml"/>
95

10-
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
11-
<encoder>
12-
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
13-
</encoder>
14-
</appender>
6+
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-/tmp/}spring.log}"/>
7+
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex"/>
158

169
<appender name="FILE"
1710
class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -28,22 +21,9 @@
2821
</triggeringPolicy>
2922
</appender>
3023

31-
<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
32-
<destinationLogger>org.springframework.boot</destinationLogger>
33-
</appender>
34-
3524
<root level="INFO">
3625
<appender-ref ref="CONSOLE" />
3726
<appender-ref ref="FILE" />
3827
</root>
3928

40-
<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
41-
<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
42-
<logger name="org.crsh.plugin" level="WARN"/>
43-
<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
44-
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
45-
<logger name="org.thymeleaf" additivity="false">
46-
<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
47-
</logger>
48-
4929
</included>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<included>
3+
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t{14}]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
4+
5+
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
6+
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
7+
8+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
9+
<encoder>
10+
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
11+
</encoder>
12+
</appender>
13+
14+
<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
15+
<destinationLogger>org.springframework.boot</destinationLogger>
16+
</appender>
17+
18+
<root level="INFO">
19+
<appender-ref ref="CONSOLE" />
20+
</root>
21+
22+
<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
23+
<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
24+
<logger name="org.crsh.plugin" level="WARN"/>
25+
<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
26+
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
27+
<logger name="org.thymeleaf" additivity="false">
28+
<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
29+
</logger>
30+
31+
</included>

Diff for: spring-boot/src/test/java/org/springframework/boot/logging/LoggingApplicationListenerTests.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public void init() throws SecurityException, IOException {
7272
this.initializer.onApplicationEvent(new ApplicationStartedEvent(
7373
new SpringApplication(), NO_ARGS));
7474
new File("target/foo.log").delete();
75+
new File("/tmp/spring.log").delete();
7576
}
7677

7778
@After
@@ -85,13 +86,14 @@ public void clear() {
8586
}
8687

8788
@Test
88-
public void testDefaultConfigLocation() {
89+
public void testBaseConfigLocation() {
8990
this.initializer.initialize(this.context.getEnvironment(),
9091
this.context.getClassLoader());
9192
this.logger.info("Hello world");
9293
String output = this.outputCapture.toString().trim();
9394
assertTrue("Wrong output:\n" + output, output.contains("Hello world"));
9495
assertFalse("Wrong output:\n" + output, output.contains("???"));
96+
assertTrue(new File("/tmp/spring.log").exists());
9597
}
9698

9799
@Test

Diff for: spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.boot.logging.logback;
1818

19+
import java.io.File;
20+
1921
import org.apache.commons.logging.Log;
2022
import org.apache.commons.logging.impl.SLF4JLogFactory;
2123
import org.junit.After;
@@ -27,6 +29,7 @@
2729
import org.springframework.util.StringUtils;
2830

2931
import static org.hamcrest.Matchers.equalTo;
32+
import static org.junit.Assert.assertFalse;
3033
import static org.junit.Assert.assertThat;
3134
import static org.junit.Assert.assertTrue;
3235

@@ -48,6 +51,7 @@ public class LogbackLoggingSystemTests {
4851
@Before
4952
public void setup() {
5053
this.logger = new SLF4JLogFactory().getInstance(getClass().getName());
54+
new File("/tmp/spring.log").delete();
5155
}
5256

5357
@After
@@ -65,6 +69,7 @@ public void testNonDefaultConfigLocation() throws Exception {
6569
String output = this.output.toString().trim();
6670
assertTrue("Wrong output:\n" + output, output.contains("Hello world"));
6771
assertTrue("Wrong output:\n" + output, output.contains("/tmp/spring.log"));
72+
assertFalse(new File("/tmp/spring.log").exists());
6873
}
6974

7075
@Test(expected = IllegalStateException.class)

0 commit comments

Comments
 (0)