1
2
3
4
5
6
7
8
9
10 package chapter10.calculator;
11
12 import java.util.HashMap;
13 import java.util.Map;
14
15 import ch.qos.logback.core.Context;
16 import ch.qos.logback.core.ContextBase;
17 import ch.qos.logback.core.joran.action.Action;
18 import ch.qos.logback.core.joran.spi.JoranException;
19 import ch.qos.logback.core.joran.spi.Pattern;
20 import ch.qos.logback.core.util.StatusPrinter;
21 import chapter10.SimpleConfigurator;
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public class Calculator2 {
36 public static void main(String[] args) throws Exception {
37 Map<Pattern, Action> ruleMap = new HashMap<Pattern, Action>();
38
39
40
41
42 ruleMap.put(new Pattern("*/computation"), new ComputationAction2());
43
44 ruleMap.put(new Pattern("*/computation/literal"), new LiteralAction());
45 ruleMap.put(new Pattern("*/computation/add"), new AddAction());
46 ruleMap.put(new Pattern("*/computation/multiply"), new MultiplyAction());
47
48 Context context = new ContextBase();
49 SimpleConfigurator simpleConfigurator = new SimpleConfigurator(ruleMap);
50
51 simpleConfigurator.setContext(context);
52
53 try {
54 simpleConfigurator.doConfigure(args[0]);
55 } catch (JoranException e) {
56
57 StatusPrinter.print(context);
58 }
59 }
60 }