--- /dev/null
+package net.sf.openrocket.logging;
+
+import java.io.PrintStream;
+import java.util.EnumMap;
+
+/**
+ * A logger that output log lines to various print streams depending on the log level.
+ * By default output is logged nowhere.
+ *
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class PrintStreamLogger extends LogHelper {
+
+ private static final EnumMap<LogLevel, PrintStream> output =
+ new EnumMap<LogLevel, PrintStream>(LogLevel.class);
+
+
+ @Override
+ public void log(LogLine line) {
+ PrintStream stream = output.get(line.getLevel());
+ if (stream != null) {
+ stream.println(line.toString());
+ }
+ }
+
+
+ public void setOutput(LogLevel level, PrintStream stream) {
+ if (level == null) {
+ throw new IllegalArgumentException("level="+level+" stream="+stream);
+ }
+ output.put(level, stream);
+ }
+
+}