1
2
3
4
5
6
7
8
9
10
11 package ch.qos.logback.classic.joran;
12
13 import ch.qos.logback.classic.joran.action.ConfigurationAction;
14 import ch.qos.logback.classic.joran.action.ConsolePluginAction;
15 import ch.qos.logback.classic.joran.action.ContextNameAction;
16 import ch.qos.logback.classic.joran.action.EvaluatorAction;
17 import ch.qos.logback.classic.joran.action.InsertFromJNDIAction;
18 import ch.qos.logback.classic.joran.action.JMXConfiguratorAction;
19 import ch.qos.logback.classic.joran.action.LevelAction;
20 import ch.qos.logback.classic.joran.action.LoggerAction;
21 import ch.qos.logback.classic.joran.action.RootLoggerAction;
22 import ch.qos.logback.classic.sift.SiftAction;
23 import ch.qos.logback.classic.spi.PlatformInfo;
24 import ch.qos.logback.classic.util.DefaultNestedComponentRules;
25 import ch.qos.logback.core.joran.JoranConfiguratorBase;
26 import ch.qos.logback.core.joran.action.AppenderRefAction;
27 import ch.qos.logback.core.joran.action.IncludeAction;
28 import ch.qos.logback.core.joran.action.NOPAction;
29 import ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistry;
30 import ch.qos.logback.core.joran.spi.Pattern;
31 import ch.qos.logback.core.joran.spi.RuleStore;
32
33
34
35
36
37
38 public class JoranConfigurator extends JoranConfiguratorBase {
39
40 public JoranConfigurator() {
41 }
42
43 @Override
44 public void addInstanceRules(RuleStore rs) {
45
46 super.addInstanceRules(rs);
47
48 rs.addRule(new Pattern("configuration"), new ConfigurationAction());
49
50 rs.addRule(new Pattern("configuration/contextName"),
51 new ContextNameAction());
52 rs.addRule(new Pattern("configuration/insertFromJNDI"),
53 new InsertFromJNDIAction());
54 rs.addRule(new Pattern("configuration/evaluator"), new EvaluatorAction());
55
56 rs.addRule(new Pattern("configuration/appender/sift"), new SiftAction());
57 rs.addRule(new Pattern("configuration/appender/sift/*"), new NOPAction());
58
59 rs.addRule(new Pattern("configuration/logger"), new LoggerAction());
60 rs.addRule(new Pattern("configuration/logger/level"), new LevelAction());
61
62 rs.addRule(new Pattern("configuration/root"), new RootLoggerAction());
63 rs.addRule(new Pattern("configuration/root/level"), new LevelAction());
64 rs.addRule(new Pattern("configuration/logger/appender-ref"),
65 new AppenderRefAction());
66 rs.addRule(new Pattern("configuration/root/appender-ref"),
67 new AppenderRefAction());
68
69
70
71
72
73
74
75
76 if (PlatformInfo.hasJMXObjectName()) {
77 rs.addRule(new Pattern("configuration/jmxConfigurator"),
78 new JMXConfiguratorAction());
79 }
80 rs.addRule(new Pattern("configuration/include"), new IncludeAction());
81
82 rs.addRule(new Pattern("configuration/consolePlugin"),
83 new ConsolePluginAction());
84 }
85
86 @Override
87 protected void addDefaultNestedComponentRegistryRules(
88 DefaultNestedComponentRegistry registry) {
89 DefaultNestedComponentRules.addDefaultNestedComponentRegistryRules(registry);
90 }
91
92 }