release 0.9.6
[debian/openrocket] / src / net / sf / openrocket / logging / DelegatorLogger.java
1 package net.sf.openrocket.logging;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 /**
7  * A logger implementation that delegates logging to other logger implementations.
8  * Multiple loggers can be added to the delegator, all of which will receive
9  * all of the log lines.
10  * 
11  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
12  */
13 public class DelegatorLogger extends LogHelper {
14
15         private List<LogHelper> loggers = new ArrayList<LogHelper>();
16         
17         @Override
18         public void log(LogLine line) {
19                 LogHelper[] array = loggers.toArray(new LogHelper[0]);
20                 for (LogHelper l: array) {
21                         l.log(line);
22                 }
23         }
24         
25         
26         public void addLogger(LogHelper logger) {
27                 this.loggers.add(logger);
28         }
29         
30         public void removeLogger(LogHelper logger) {
31                 this.loggers.remove(logger);
32         }
33
34 }