release 0.9.6
[debian/openrocket] / src / net / sf / openrocket / logging / StandardOutputLogger.java
diff --git a/src/net/sf/openrocket/logging/StandardOutputLogger.java b/src/net/sf/openrocket/logging/StandardOutputLogger.java
new file mode 100644 (file)
index 0000000..e87dd94
--- /dev/null
@@ -0,0 +1,37 @@
+package net.sf.openrocket.logging;
+
+import java.io.PrintStream;
+
+public class StandardOutputLogger extends LogHelper {
+
+       private static final PrintStream[] output;
+       static {
+               LogLevel[] levels = LogLevel.values();
+               
+               output = new PrintStream[levels.length];
+               for (int i=0; i<levels.length; i++) {
+                       if (levels[i].atLeast(LogLevel.WARN))
+                               output[i] = System.err;
+                       else
+                               output[i] = System.out;
+               }
+       }
+       
+       
+       @Override
+       public void log(LogLine line) {
+               PrintStream stream = output[line.getLevel().ordinal()];
+               if (stream != null) {
+                       stream.println(line.toString());
+               }
+       }
+
+       
+       public void setOutput(LogLevel level, PrintStream stream) {
+               if (level == null || stream == null) {
+                       throw new IllegalArgumentException("level="+level+" stream="+stream);
+               }
+               output[level.ordinal()] = stream;
+       }
+       
+}