diff --git a/src/org/hwo/logging/Logging.java b/src/org/hwo/logging/Logging.java index 9236c92..da0ad3e 100644 --- a/src/org/hwo/logging/Logging.java +++ b/src/org/hwo/logging/Logging.java @@ -7,6 +7,8 @@ import java.io.OutputStream; import java.io.PrintStream; import java.text.DateFormat; import java.util.Date; +import java.util.LinkedList; +import java.util.List; public class Logging { @@ -17,7 +19,11 @@ public class Logging { private PrintStream logStream; private final DateFormat dateFormat; + List loggingListeners; + public Logging(String filename){ + loggingListeners = new LinkedList(); + dateFormat = DateFormat.getDateTimeInstance(); try { @@ -44,6 +50,13 @@ public class Logging { } + public void addLoggingListener(LoggingListener listener){ + loggingListeners.add(listener); + } + public void removeLoggingListener(LoggingListener listener){ + loggingListeners.remove(listener); + } + private void _log(LogLevel logLevel,String message){ String formattedLine; @@ -56,6 +69,10 @@ public class Logging { liveStream.println(formattedLine); liveStream.flush(); } + + for (LoggingListener l: loggingListeners){ + l.logMessageArrived(formattedLine); + } } @@ -87,6 +104,10 @@ public class Logging { e.printStackTrace(); } + static public Logging getInstance() { + return _inst; + } + static { liveStream = System.out; } diff --git a/src/org/hwo/logging/LoggingListener.java b/src/org/hwo/logging/LoggingListener.java new file mode 100644 index 0000000..233d3d0 --- /dev/null +++ b/src/org/hwo/logging/LoggingListener.java @@ -0,0 +1,7 @@ +package org.hwo.logging; + +public interface LoggingListener { + + public void logMessageArrived(String message); + +}