*/
public class LogMediator {
private static Hashtable loggers = new Hashtable();
+
private static WeakHashMap observers = new WeakHashMap();
+
private final String logName;
-
+
private LogMediator(String logName) {
this.logName = logName;
}
public static synchronized LogMediator getInstance() {
return getInstance("_default");
}
-
+
public static synchronized LogMediator getInstance(Class logClass) {
return getInstance(logClass.getName());
}
private static synchronized LogMediator getInstance(String logName) {
- if (loggers.contains(logName))
+ if (loggers.contains(logName))
return (LogMediator) loggers.get(logName);
-
+
LogMediator defaultLogger = new LogMediator(logName);
loggers.put(logName, defaultLogger);
return defaultLogger;
}
-
-
-
+
public synchronized void addObserver(Loggable o) {
- observers.put(o,"OK");
+ observers.put(o, "OK");
}
-
+
public void log(String message) {
- for (Iterator iterator = observers.keySet().iterator(); iterator.hasNext();) {
+ for (Iterator iterator = observers.keySet().iterator(); iterator
+ .hasNext();) {
Loggable observer = (Loggable) iterator.next();
- if (observer != null)
+ if (observer != null)
observer.log(logName + ": " + message);
}
}