X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fnet%2Fsf%2Fopenrocket%2Flogging%2FPrintStreamLogger.java;fp=src%2Fnet%2Fsf%2Fopenrocket%2Flogging%2FPrintStreamLogger.java;h=16a7545fcb8ada11f0e8d2116758a2afebd237fd;hb=f8aca85893990faf46d59ab89e9861f46c66dff3;hp=0000000000000000000000000000000000000000;hpb=6d71a8c4a93455ea8d3df1ed42d33b941847efcc;p=debian%2Fopenrocket diff --git a/src/net/sf/openrocket/logging/PrintStreamLogger.java b/src/net/sf/openrocket/logging/PrintStreamLogger.java new file mode 100644 index 00000000..16a7545f --- /dev/null +++ b/src/net/sf/openrocket/logging/PrintStreamLogger.java @@ -0,0 +1,34 @@ +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 + */ +public class PrintStreamLogger extends LogHelper { + + private static final EnumMap output = + new EnumMap(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); + } + +}