KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > savant > log > LogManager


1 /*
2  * Copyright (c) 2003-2004, Inversoft, All Rights Reserved
3  */

4 package com.inversoft.savant.log;
5
6
7 import java.util.ArrayList JavaDoc;
8 import java.util.Collections JavaDoc;
9 import java.util.List JavaDoc;
10
11
12 /**
13  * <p>
14  * This class is the manager for all logging activities
15  * inside the Savant build system. It maintains a list of
16  * {@link LogListener}s that are called for log events. This
17  * is also used be the Log class.
18  * </p>
19  *
20  * @author Brian Pontarelli
21  */

22 public class LogManager {
23
24     private static final LogManager instance = new LogManager();
25     private List JavaDoc listeners = new ArrayList JavaDoc();
26
27
28     /**
29      * Returns the singleton instance of the LogManager.
30      *
31      * @return The LogManager and never null.
32      */

33     public static LogManager getInstance() {
34         return instance;
35     }
36
37
38     /**
39      * Adds the given listener to the list.
40      */

41     public void addListener(LogListener listener) {
42         listeners.add(listener);
43     }
44
45     /**
46      * Removes the given listener to the list.
47      */

48     public void removeListener(LogListener listener) {
49         listeners.remove(listener);
50     }
51
52     /**
53      * Returns the list of listeners as an unmodifiable list.
54      */

55     public List JavaDoc getListener() {
56         return Collections.unmodifiableList(listeners);
57     }
58
59     /**
60      * Sends the message to all the registered listeners.
61      *
62      * @param msg The message to send.
63      * @param level The level of the log.
64      */

65     protected void sendMessage(String JavaDoc msg, String JavaDoc level) {
66         for (int i = 0; i < listeners.size(); i++) {
67             LogListener listener = (LogListener) listeners.get(i);
68             listener.logged(msg, level);
69         }
70     }
71 }
Popular Tags