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 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 PrintStream getOutput(LogLevel level) { return output.get(level); } public void setOutput(LogLevel level, PrintStream stream) { if (level == null) { throw new IllegalArgumentException("level=" + level + " stream=" + stream); } output.put(level, stream); } }