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 org.apache.logging.log4j.Level;
20 import org.apache.logging.log4j.Logger;
21 import org.apache.logging.log4j.core.Filter;
22 import org.apache.logging.log4j.core.config.plugins.Plugin;
23 import org.apache.logging.log4j.core.config.plugins.PluginAliases;
24 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
25 import org.apache.logging.log4j.core.config.plugins.PluginElement;
26 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
27 import org.apache.logging.log4j.status.StatusLogger;
28
29
30
31
32 @Plugin(name = "AppenderRef", category = Node.CATEGORY, printObject = true)
33 @PluginAliases("appender-ref")
34 public final class AppenderRef {
35 private static final Logger LOGGER = StatusLogger.getLogger();
36
37 private final String ref;
38 private final Level level;
39 private final Filter filter;
40
41 private AppenderRef(final String ref, final Level level, final Filter filter) {
42 this.ref = ref;
43 this.level = level;
44 this.filter = filter;
45 }
46
47 public String getRef() {
48 return ref;
49 }
50
51 public Level getLevel() {
52 return level;
53 }
54
55 public Filter getFilter() {
56 return filter;
57 }
58
59 @Override
60 public String toString() {
61 return ref;
62 }
63
64
65
66
67
68
69
70
71 @PluginFactory
72 public static AppenderRef createAppenderRef(
73 @PluginAttribute("ref") final String ref,
74 @PluginAttribute("level") final Level level,
75 @PluginElement("Filter") final Filter filter) {
76
77 if (ref == null) {
78 LOGGER.error("Appender references must contain a reference");
79 return null;
80 }
81 return new AppenderRef(ref, level, filter);
82 }
83 }