1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package it.jnrpe.osgi;
17
18 import it.jnrpe.events.IJNRPEEvent;
19 import it.jnrpe.events.IJNRPEEventListener;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30
31
32
33 public class EventLoggerListener implements IJNRPEEventListener {
34
35
36
37 private final Map<String, Logger> loggersMap = new HashMap<String, Logger>();
38
39
40
41
42
43
44
45
46
47 public final void receive(final Object sender, final IJNRPEEvent event) {
48 String sClassName = sender.getClass().getName();
49
50 Logger logger = loggersMap.get(sClassName);
51
52 if (logger == null) {
53 logger = LoggerFactory.getLogger(sender.getClass());
54 loggersMap.put(sClassName, logger);
55 }
56
57 Throwable error = (Throwable) event.getEventParams().get("EXCEPTION");
58
59
60 if (error != null) {
61 error.printStackTrace();
62 }
63
64 String sEventName = event.getEventName();
65
66 if (sEventName.equals("TRACE")) {
67 if (error != null) {
68 logger.trace((String) event.getEventParams().get("MESSAGE"),
69 error);
70 } else {
71 logger.trace((String) event.getEventParams().get("MESSAGE"));
72 }
73 return;
74 }
75
76 if (sEventName.equals("DEBUG")) {
77 if (error != null) {
78 logger.debug((String) event.getEventParams().get("MESSAGE"),
79 error);
80 } else {
81 logger.debug((String) event.getEventParams().get("MESSAGE"));
82 }
83 return;
84 }
85
86 if (sEventName.equals("INFO")) {
87 if (error != null) {
88 logger.info((String) event.getEventParams().get("MESSAGE"),
89 error);
90 } else {
91 logger.info((String) event.getEventParams().get("MESSAGE"));
92 }
93 return;
94 }
95
96 if (sEventName.equals("WARNING")) {
97 if (error != null) {
98 logger.warn((String) event.getEventParams().get("MESSAGE"),
99 error);
100 } else {
101 logger.warn((String) event.getEventParams().get("MESSAGE"));
102 }
103 return;
104 }
105
106 if (sEventName.equals("ERROR")) {
107 if (error != null) {
108 logger.error((String) event.getEventParams().get("MESSAGE"),
109 error);
110 } else {
111 logger.error((String) event.getEventParams().get("MESSAGE"));
112 }
113 return;
114 }
115
116 if (sEventName.equals("FATAL")) {
117 if (error != null) {
118 logger.error((String) event.getEventParams().get("MESSAGE"),
119 (Throwable) (event.getEventParams().get("EXCEPTION")));
120 } else {
121 logger.error((String) event.getEventParams().get("MESSAGE"));
122 }
123 return;
124 }
125 }
126
127 }