1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.config;
18
19 import java.util.concurrent.ConcurrentHashMap;
20 import java.util.concurrent.ConcurrentMap;
21
22 import org.apache.logging.log4j.core.config.LoggerConfig;
23 import org.apache.logging.log4j.core.config.Loggers;
24 import org.apache.logging.log4j.core.config.plugins.Plugin;
25 import org.apache.logging.log4j.core.config.plugins.PluginElement;
26 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
27
28
29
30
31 @Plugin(name = "loggers", category = "Core")
32 public final class LoggersPlugin {
33
34 private LoggersPlugin() {
35 }
36
37
38
39
40
41
42 @PluginFactory
43 public static Loggers createLoggers(@PluginElement("Loggers") final LoggerConfig[] loggers) {
44 final ConcurrentMap<String, LoggerConfig> loggerMap = new ConcurrentHashMap<String, LoggerConfig>();
45 LoggerConfig root = null;
46
47 for (final LoggerConfig logger : loggers) {
48 if (logger != null) {
49 if (logger.getName().isEmpty()) {
50 root = logger;
51 }
52 loggerMap.put(logger.getName(), logger);
53 }
54 }
55
56 return new Loggers(loggerMap, root);
57 }
58 }