logging and unit test updates
[debian/openrocket] / 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 static final EnumMap<LogLevel, PrintStream> output = 
15                 new EnumMap<LogLevel, PrintStream>(LogLevel.class);
16         
17         
18         @Override
19         public void log(LogLine line) {
20                 PrintStream stream = output.get(line.getLevel());
21                 if (stream != null) {
22                         stream.println(line.toString());
23                 }
24         }
25
26         
27         public void setOutput(LogLevel level, PrintStream stream) {
28                 if (level == null) {
29                         throw new IllegalArgumentException("level="+level+" stream="+stream);
30                 }
31                 output.put(level, stream);
32         }
33         
34 }