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
02bfc9d3
Commit
02bfc9d3
authored
Jun 11, 2020
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
4e014da9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
42 deletions
+40
-42
Log4J2LoggingSystem.java
...ingframework/boot/logging/log4j2/Log4J2LoggingSystem.java
+40
-42
No files found.
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java
View file @
02bfc9d3
...
@@ -20,7 +20,6 @@ import java.io.IOException;
...
@@ -20,7 +20,6 @@ import java.io.IOException;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.LinkedHashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -34,6 +33,8 @@ import org.apache.logging.log4j.core.Filter;
...
@@ -34,6 +33,8 @@ import org.apache.logging.log4j.core.Filter;
import
org.apache.logging.log4j.core.LogEvent
;
import
org.apache.logging.log4j.core.LogEvent
;
import
org.apache.logging.log4j.core.Logger
;
import
org.apache.logging.log4j.core.Logger
;
import
org.apache.logging.log4j.core.LoggerContext
;
import
org.apache.logging.log4j.core.LoggerContext
;
import
org.apache.logging.log4j.core.config.AbstractConfiguration
;
import
org.apache.logging.log4j.core.config.Configuration
;
import
org.apache.logging.log4j.core.config.ConfigurationFactory
;
import
org.apache.logging.log4j.core.config.ConfigurationFactory
;
import
org.apache.logging.log4j.core.config.ConfigurationSource
;
import
org.apache.logging.log4j.core.config.ConfigurationSource
;
import
org.apache.logging.log4j.core.config.LoggerConfig
;
import
org.apache.logging.log4j.core.config.LoggerConfig
;
...
@@ -211,68 +212,59 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem {
...
@@ -211,68 +212,59 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem {
@Override
@Override
public
void
setLogLevel
(
String
loggerName
,
LogLevel
logLevel
)
{
public
void
setLogLevel
(
String
loggerName
,
LogLevel
logLevel
)
{
Level
level
=
LEVELS
.
convertSystemToNative
(
logLevel
);
Level
level
=
LEVELS
.
convertSystemToNative
(
logLevel
);
LoggerConfig
logger
Config
=
getLoggerConfig
(
loggerName
);
LoggerConfig
logger
=
getLogger
(
loggerName
);
if
(
logger
Config
==
null
)
{
if
(
logger
==
null
)
{
logger
Config
=
new
LoggerConfig
(
loggerName
,
level
,
true
);
logger
=
new
LoggerConfig
(
loggerName
,
level
,
true
);
getLoggerContext
().
getConfiguration
().
addLogger
(
loggerName
,
logger
Config
);
getLoggerContext
().
getConfiguration
().
addLogger
(
loggerName
,
logger
);
}
}
else
{
else
{
logger
Config
.
setLevel
(
level
);
logger
.
setLevel
(
level
);
}
}
getLoggerContext
().
updateLoggers
();
getLoggerContext
().
updateLoggers
();
}
}
@Override
@Override
public
List
<
LoggerConfiguration
>
getLoggerConfigurations
()
{
public
List
<
LoggerConfiguration
>
getLoggerConfigurations
()
{
Map
<
String
,
LoggerConfig
>
allLoggers
=
getAllLoggers
();
List
<
LoggerConfiguration
>
result
=
new
ArrayList
<>();
List
<
LoggerConfiguration
>
result
=
new
ArrayList
<>();
allLoggers
.
forEach
((
key
,
value
)
->
result
.
add
(
convertLoggerConfiguration
(
value
,
key
)));
getAllLoggers
().
forEach
((
name
,
loggerConfig
)
->
result
.
add
(
convertLoggerConfig
(
name
,
loggerConfig
)));
result
.
sort
(
CONFIGURATION_COMPARATOR
);
result
.
sort
(
CONFIGURATION_COMPARATOR
);
return
result
;
return
result
;
}
}
@Override
public
LoggerConfiguration
getLoggerConfiguration
(
String
loggerName
)
{
LoggerConfig
loggerConfig
=
getAllLoggers
().
get
(
loggerName
);
return
(
loggerConfig
!=
null
)
?
convertLoggerConfig
(
loggerName
,
loggerConfig
)
:
null
;
}
private
Map
<
String
,
LoggerConfig
>
getAllLoggers
()
{
private
Map
<
String
,
LoggerConfig
>
getAllLoggers
()
{
Collection
<
Logger
>
loggers
=
getLoggerContext
().
getLoggers
();
Map
<
String
,
LoggerConfig
>
loggers
=
new
LinkedHashMap
<>();
Map
<
String
,
LoggerConfig
>
configuredLoggers
=
getLoggerContext
().
getConfiguration
().
getLoggers
();
for
(
Logger
logger
:
getLoggerContext
().
getLoggers
())
{
Map
<
String
,
LoggerConfig
>
result
=
new
LinkedHashMap
<>();
addLogger
(
loggers
,
logger
.
getName
());
for
(
Logger
logger
:
loggers
)
{
String
name
=
logger
.
getName
();
while
(
name
!=
null
)
{
result
.
putIfAbsent
(
name
,
getLoggerContext
().
getConfiguration
().
getLoggerConfig
(
name
));
name
=
getSubName
(
name
);
}
}
}
configuredLoggers
.
keySet
().
forEach
((
name
)
->
{
getLoggerContext
().
getConfiguration
().
getLoggers
().
keySet
().
forEach
((
name
)
->
{
String
currentName
=
name
;
addLogger
(
loggers
,
name
);
while
(
currentName
!=
null
)
{
result
.
putIfAbsent
(
currentName
,
getLoggerContext
().
getConfiguration
().
getLoggerConfig
(
currentName
));
currentName
=
getSubName
(
currentName
);
}
});
});
return
result
;
return
loggers
;
}
}
private
String
getSubName
(
String
name
)
{
private
void
addLogger
(
Map
<
String
,
LoggerConfig
>
loggers
,
String
name
)
{
if
(
StringUtils
.
isEmpty
(
name
))
{
Configuration
configuration
=
getLoggerContext
().
getConfiguration
();
return
null
;
while
(
name
!=
null
)
{
loggers
.
computeIfAbsent
(
name
,
configuration:
:
getLoggerConfig
);
name
=
getSubName
(
name
);
}
}
int
nested
=
name
.
lastIndexOf
(
'$'
);
if
(
nested
!=
-
1
)
{
return
name
.
substring
(
0
,
nested
);
}
return
NameUtil
.
getSubName
(
name
);
}
}
@Override
private
String
getSubName
(
String
name
)
{
public
LoggerConfiguration
getLoggerConfiguration
(
String
loggerName
)
{
if
(
StringUtils
.
isEmpty
(
name
))
{
LoggerConfig
loggerConfig
=
getAllLoggers
().
get
(
loggerName
);
if
(
loggerConfig
==
null
)
{
return
null
;
return
null
;
}
}
return
convertLoggerConfiguration
(
loggerConfig
,
loggerName
);
int
nested
=
name
.
lastIndexOf
(
'$'
);
return
(
nested
!=
-
1
)
?
name
.
substring
(
0
,
nested
)
:
NameUtil
.
getSubName
(
name
);
}
}
private
LoggerConfiguration
convertLoggerConfig
uration
(
LoggerConfig
loggerConfig
,
String
name
)
{
private
LoggerConfiguration
convertLoggerConfig
(
String
name
,
LoggerConfig
loggerConfig
)
{
if
(
loggerConfig
==
null
)
{
if
(
loggerConfig
==
null
)
{
return
null
;
return
null
;
}
}
...
@@ -298,11 +290,17 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem {
...
@@ -298,11 +290,17 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem {
loggerContext
.
getConfiguration
().
removeFilter
(
FILTER
);
loggerContext
.
getConfiguration
().
removeFilter
(
FILTER
);
}
}
private
LoggerConfig
getLoggerConfig
(
String
name
)
{
private
LoggerConfig
getLogger
(
String
name
)
{
if
(!
StringUtils
.
hasLength
(
name
)
||
ROOT_LOGGER_NAME
.
equals
(
name
))
{
boolean
isRootLogger
=
!
StringUtils
.
hasLength
(
name
)
||
ROOT_LOGGER_NAME
.
equals
(
name
);
name
=
LogManager
.
ROOT_LOGGER_NAME
;
return
findLogger
(
isRootLogger
?
LogManager
.
ROOT_LOGGER_NAME
:
name
);
}
private
LoggerConfig
findLogger
(
String
name
)
{
Configuration
configuration
=
getLoggerContext
().
getConfiguration
();
if
(
configuration
instanceof
AbstractConfiguration
)
{
return
((
AbstractConfiguration
)
configuration
).
getLogger
(
name
);
}
}
return
getLoggerContext
().
getConfiguration
()
.
getLoggers
().
get
(
name
);
return
configuration
.
getLoggers
().
get
(
name
);
}
}
private
LoggerContext
getLoggerContext
()
{
private
LoggerContext
getLoggerContext
()
{
...
...
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