View Javadoc

1   /*******************************************************************************
2    * Copyright (c) 2007, 2014 Massimiliano Ziccardi
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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   * The JNRPE Server uses this event listener to populate the log files.
29   *
30   * @author Massimiliano Ziccardi
31   *
32   */
33  public class EventLoggerListener implements IJNRPEEventListener {
34      /**
35       * All the loggers.
36       */
37      private final Map<String, Logger> loggersMap = new HashMap<String, Logger>();
38  
39      /**
40       * This method receives the log event and logs it.
41       *
42       * @param sender
43       *            The source of the event
44       * @param event
45       *            The event
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          //System.out.println((String) event.getEventParams().get("MESSAGE"));
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 }