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.plugins.Plugin;
23 import org.apache.logging.log4j.core.config.plugins.PluginElement;
24 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
25
26
27
28
29 @Plugin(name = "loggers", category = Node.CATEGORY)
30 public final class LoggersPlugin {
31
32 private LoggersPlugin() {
33 }
34
35
36
37
38
39
40 @PluginFactory
41 public static Loggers createLoggers(@PluginElement("Loggers") final LoggerConfig[] loggers) {
42 final ConcurrentMap<String, LoggerConfig> loggerMap = new ConcurrentHashMap<String, LoggerConfig>();
43 LoggerConfig root = null;
44
45 for (final LoggerConfig logger : loggers) {
46 if (logger != null) {
47 if (logger.getName().isEmpty()) {
48 root = logger;
49 }
50 loggerMap.put(logger.getName(), logger);
51 }
52 }
53
54 return new Loggers(loggerMap, root);
55 }
56 }