Skip to content

Commit 02bfc9d

Browse files
committed
Polish
1 parent 4e014da commit 02bfc9d

File tree

1 file changed

+40
-42
lines changed

1 file changed

+40
-42
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.io.InputStream;
2121
import java.net.URL;
2222
import java.util.ArrayList;
23-
import java.util.Collection;
2423
import java.util.Collections;
2524
import java.util.LinkedHashMap;
2625
import java.util.List;
@@ -34,6 +33,8 @@
3433
import org.apache.logging.log4j.core.LogEvent;
3534
import org.apache.logging.log4j.core.Logger;
3635
import org.apache.logging.log4j.core.LoggerContext;
36+
import org.apache.logging.log4j.core.config.AbstractConfiguration;
37+
import org.apache.logging.log4j.core.config.Configuration;
3738
import org.apache.logging.log4j.core.config.ConfigurationFactory;
3839
import org.apache.logging.log4j.core.config.ConfigurationSource;
3940
import org.apache.logging.log4j.core.config.LoggerConfig;
@@ -211,68 +212,59 @@ public Set<LogLevel> getSupportedLogLevels() {
211212
@Override
212213
public void setLogLevel(String loggerName, LogLevel logLevel) {
213214
Level level = LEVELS.convertSystemToNative(logLevel);
214-
LoggerConfig loggerConfig = getLoggerConfig(loggerName);
215-
if (loggerConfig == null) {
216-
loggerConfig = new LoggerConfig(loggerName, level, true);
217-
getLoggerContext().getConfiguration().addLogger(loggerName, loggerConfig);
215+
LoggerConfig logger = getLogger(loggerName);
216+
if (logger == null) {
217+
logger = new LoggerConfig(loggerName, level, true);
218+
getLoggerContext().getConfiguration().addLogger(loggerName, logger);
218219
}
219220
else {
220-
loggerConfig.setLevel(level);
221+
logger.setLevel(level);
221222
}
222223
getLoggerContext().updateLoggers();
223224
}
224225

225226
@Override
226227
public List<LoggerConfiguration> getLoggerConfigurations() {
227-
Map<String, LoggerConfig> allLoggers = getAllLoggers();
228228
List<LoggerConfiguration> result = new ArrayList<>();
229-
allLoggers.forEach((key, value) -> result.add(convertLoggerConfiguration(value, key)));
229+
getAllLoggers().forEach((name, loggerConfig) -> result.add(convertLoggerConfig(name, loggerConfig)));
230230
result.sort(CONFIGURATION_COMPARATOR);
231231
return result;
232232
}
233233

234+
@Override
235+
public LoggerConfiguration getLoggerConfiguration(String loggerName) {
236+
LoggerConfig loggerConfig = getAllLoggers().get(loggerName);
237+
return (loggerConfig != null) ? convertLoggerConfig(loggerName, loggerConfig) : null;
238+
}
239+
234240
private Map<String, LoggerConfig> getAllLoggers() {
235-
Collection<Logger> loggers = getLoggerContext().getLoggers();
236-
Map<String, LoggerConfig> configuredLoggers = getLoggerContext().getConfiguration().getLoggers();
237-
Map<String, LoggerConfig> result = new LinkedHashMap<>();
238-
for (Logger logger : loggers) {
239-
String name = logger.getName();
240-
while (name != null) {
241-
result.putIfAbsent(name, getLoggerContext().getConfiguration().getLoggerConfig(name));
242-
name = getSubName(name);
243-
}
241+
Map<String, LoggerConfig> loggers = new LinkedHashMap<>();
242+
for (Logger logger : getLoggerContext().getLoggers()) {
243+
addLogger(loggers, logger.getName());
244244
}
245-
configuredLoggers.keySet().forEach((name) -> {
246-
String currentName = name;
247-
while (currentName != null) {
248-
result.putIfAbsent(currentName, getLoggerContext().getConfiguration().getLoggerConfig(currentName));
249-
currentName = getSubName(currentName);
250-
}
245+
getLoggerContext().getConfiguration().getLoggers().keySet().forEach((name) -> {
246+
addLogger(loggers, name);
251247
});
252-
return result;
248+
return loggers;
253249
}
254250

255-
private String getSubName(String name) {
256-
if (StringUtils.isEmpty(name)) {
257-
return null;
251+
private void addLogger(Map<String, LoggerConfig> loggers, String name) {
252+
Configuration configuration = getLoggerContext().getConfiguration();
253+
while (name != null) {
254+
loggers.computeIfAbsent(name, configuration::getLoggerConfig);
255+
name = getSubName(name);
258256
}
259-
int nested = name.lastIndexOf('$');
260-
if (nested != -1) {
261-
return name.substring(0, nested);
262-
}
263-
return NameUtil.getSubName(name);
264257
}
265258

266-
@Override
267-
public LoggerConfiguration getLoggerConfiguration(String loggerName) {
268-
LoggerConfig loggerConfig = getAllLoggers().get(loggerName);
269-
if (loggerConfig == null) {
259+
private String getSubName(String name) {
260+
if (StringUtils.isEmpty(name)) {
270261
return null;
271262
}
272-
return convertLoggerConfiguration(loggerConfig, loggerName);
263+
int nested = name.lastIndexOf('$');
264+
return (nested != -1) ? name.substring(0, nested) : NameUtil.getSubName(name);
273265
}
274266

275-
private LoggerConfiguration convertLoggerConfiguration(LoggerConfig loggerConfig, String name) {
267+
private LoggerConfiguration convertLoggerConfig(String name, LoggerConfig loggerConfig) {
276268
if (loggerConfig == null) {
277269
return null;
278270
}
@@ -298,11 +290,17 @@ public void cleanUp() {
298290
loggerContext.getConfiguration().removeFilter(FILTER);
299291
}
300292

301-
private LoggerConfig getLoggerConfig(String name) {
302-
if (!StringUtils.hasLength(name) || ROOT_LOGGER_NAME.equals(name)) {
303-
name = LogManager.ROOT_LOGGER_NAME;
293+
private LoggerConfig getLogger(String name) {
294+
boolean isRootLogger = !StringUtils.hasLength(name) || ROOT_LOGGER_NAME.equals(name);
295+
return findLogger(isRootLogger ? LogManager.ROOT_LOGGER_NAME : name);
296+
}
297+
298+
private LoggerConfig findLogger(String name) {
299+
Configuration configuration = getLoggerContext().getConfiguration();
300+
if (configuration instanceof AbstractConfiguration) {
301+
return ((AbstractConfiguration) configuration).getLogger(name);
304302
}
305-
return getLoggerContext().getConfiguration().getLoggers().get(name);
303+
return configuration.getLoggers().get(name);
306304
}
307305

308306
private LoggerContext getLoggerContext() {

0 commit comments

Comments
 (0)