create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / logging / PrintStreamLogger.java
1 package net.sf.openrocket.logging;
2
3 import java.io.PrintStream;
4 import java.util.EnumMap;
5
6 /**
7  * A logger that output log lines to various print streams depending on the log level.
8  * By default output is logged nowhere.
9  * 
10  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
11  */
12 public class PrintStreamLogger extends LogHelper {
13         
14         private final EnumMap<LogLevel, PrintStream> output = new EnumMap<LogLevel, PrintStream>(LogLevel.class);
15         
16         
17         @Override
18         public void log(LogLine line) {
19                 PrintStream stream = output.get(line.getLevel());
20                 if (stream != null) {
21                         stream.println(line.toString());
22                 }
23         }
24         
25         public PrintStream getOutput(LogLevel level) {
26                 return output.get(level);
27         }
28         
29         public void setOutput(LogLevel level, PrintStream stream) {
30                 if (level == null) {
31                         throw new IllegalArgumentException("level=" + level + " stream=" + stream);
32                 }
33                 output.put(level, stream);
34         }
35         
36 }