Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
12eafc84
Commit
12eafc84
authored
Jun 19, 2018
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.0.x'
parents
cc894ce4
497902de
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
46 additions
and
7 deletions
+46
-7
Slf4JLoggingSystem.java
.../org/springframework/boot/logging/Slf4JLoggingSystem.java
+24
-6
LogbackLoggingSystem.java
...gframework/boot/logging/logback/LogbackLoggingSystem.java
+13
-1
Log4J2LoggingSystemTests.java
...amework/boot/logging/log4j2/Log4J2LoggingSystemTests.java
+8
-0
LogbackLoggingSystemTests.java
...ework/boot/logging/logback/LogbackLoggingSystemTests.java
+1
-0
No files found.
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/Slf4JLoggingSystem.java
View file @
12eafc84
...
...
@@ -48,7 +48,10 @@ public abstract class Slf4JLoggingSystem extends AbstractLoggingSystem {
@Override
public
void
cleanUp
()
{
removeJdkLoggingBridgeHandler
();
if
(
isBridgeHandlerAvailable
())
{
removeJdkLoggingBridgeHandler
();
reinstateConsoleHandlerIfNecessary
();
}
}
@Override
...
...
@@ -62,7 +65,7 @@ public abstract class Slf4JLoggingSystem extends AbstractLoggingSystem {
private
void
configureJdkLoggingBridgeHandler
()
{
try
{
if
(
isBridge
HandlerAvailable
())
{
if
(
isBridge
JulIntoSlf4j
())
{
removeJdkLoggingBridgeHandler
();
SLF4JBridgeHandler
.
install
();
}
...
...
@@ -72,16 +75,24 @@ public abstract class Slf4JLoggingSystem extends AbstractLoggingSystem {
}
}
protected
final
boolean
isBridgeJulIntoSlf4j
()
{
return
isBridgeHandlerAvailable
()
&&
isJulUsingItsDefaultConfiguration
();
}
protected
final
boolean
isBridgeHandlerAvailable
()
{
return
ClassUtils
.
isPresent
(
BRIDGE_HANDLER
,
getClassLoader
());
}
private
boolean
isJulUsingItsDefaultConfiguration
()
{
Logger
rootLogger
=
LogManager
.
getLogManager
().
getLogger
(
""
);
Handler
[]
handlers
=
rootLogger
.
getHandlers
();
return
handlers
.
length
==
1
&&
handlers
[
0
]
instanceof
ConsoleHandler
;
}
private
void
removeJdkLoggingBridgeHandler
()
{
try
{
if
(
isBridgeHandlerAvailable
())
{
removeDefaultRootHandler
();
SLF4JBridgeHandler
.
uninstall
();
}
removeDefaultRootHandler
();
SLF4JBridgeHandler
.
uninstall
();
}
catch
(
Throwable
ex
)
{
// Ignore and continue
...
...
@@ -101,4 +112,11 @@ public abstract class Slf4JLoggingSystem extends AbstractLoggingSystem {
}
}
private
void
reinstateConsoleHandlerIfNecessary
()
{
Logger
rootLogger
=
LogManager
.
getLogManager
().
getLogger
(
""
);
if
(
rootLogger
.
getHandlers
().
length
==
0
)
{
rootLogger
.
addHandler
(
new
ConsoleHandler
());
}
}
}
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/logback/LogbackLoggingSystem.java
View file @
12eafc84
...
...
@@ -22,6 +22,8 @@ import java.security.ProtectionDomain;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.logging.Handler
;
import
java.util.logging.LogManager
;
import
ch.qos.logback.classic.Level
;
import
ch.qos.logback.classic.LoggerContext
;
...
...
@@ -35,6 +37,7 @@ import ch.qos.logback.core.status.Status;
import
org.slf4j.ILoggerFactory
;
import
org.slf4j.Logger
;
import
org.slf4j.Marker
;
import
org.slf4j.bridge.SLF4JBridgeHandler
;
import
org.slf4j.impl.StaticLoggerBinder
;
import
org.springframework.boot.logging.LogFile
;
...
...
@@ -184,11 +187,20 @@ public class LogbackLoggingSystem extends Slf4JLoggingSystem {
private
void
stopAndReset
(
LoggerContext
loggerContext
)
{
loggerContext
.
stop
();
loggerContext
.
reset
();
if
(
isBridgeHandler
Available
())
{
if
(
isBridgeHandler
Installed
())
{
addLevelChangePropagator
(
loggerContext
);
}
}
private
boolean
isBridgeHandlerInstalled
()
{
if
(!
isBridgeHandlerAvailable
())
{
return
false
;
}
java
.
util
.
logging
.
Logger
rootLogger
=
LogManager
.
getLogManager
().
getLogger
(
""
);
Handler
[]
handlers
=
rootLogger
.
getHandlers
();
return
handlers
.
length
==
1
&&
SLF4JBridgeHandler
.
class
.
isInstance
(
handlers
[
0
]);
}
private
void
addLevelChangePropagator
(
LoggerContext
loggerContext
)
{
LevelChangePropagator
levelChangePropagator
=
new
LevelChangePropagator
();
levelChangePropagator
.
setResetJUL
(
true
);
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystemTests.java
View file @
12eafc84
...
...
@@ -32,6 +32,7 @@ import org.apache.logging.log4j.core.LoggerContext;
import
org.apache.logging.log4j.core.config.Configuration
;
import
org.hamcrest.Matcher
;
import
org.hamcrest.Matchers
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Rule
;
import
org.junit.Test
;
...
...
@@ -77,6 +78,13 @@ public class Log4J2LoggingSystemTests extends AbstractLoggingSystemTests {
this
.
logger
=
LogManager
.
getLogger
(
getClass
());
}
@Override
@After
public
void
clear
()
{
super
.
clear
();
this
.
loggingSystem
.
cleanUp
();
}
@Test
public
void
noFile
()
{
this
.
loggingSystem
.
beforeInitialize
();
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/LogbackLoggingSystemTests.java
View file @
12eafc84
...
...
@@ -104,6 +104,7 @@ public class LogbackLoggingSystemTests extends AbstractLoggingSystemTests {
@Override
@After
public
void
clear
()
{
super
.
clear
();
this
.
loggingSystem
.
cleanUp
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment