1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package pl.edu.agh.cast.util.logging;
19
20 import java.io.ByteArrayOutputStream;
21 import java.io.IOException;
22
23 import org.apache.log4j.Logger;
24 import org.apache.log4j.Priority;
25
26
27
28
29
30
31 @SuppressWarnings("nls")
32 public class LoggingOutputStream extends ByteArrayOutputStream {
33
34 private String lineSeparator;
35
36 private Logger logger;
37
38 private Priority priority;
39
40
41
42
43
44
45
46
47
48 public LoggingOutputStream(Logger logger, Priority priority) {
49 super();
50 this.logger = logger;
51 this.priority = priority;
52 lineSeparator = System.getProperty("line.separator");
53 }
54
55
56
57
58
59
60
61
62 @Override
63 public void flush() throws IOException {
64
65 String record;
66 synchronized (this) {
67 super.flush();
68 record = this.toString();
69 super.reset();
70
71 if (record.length() == 0 || record.equals(lineSeparator)) {
72
73 return;
74 }
75
76 logger.log(priority, record);
77 }
78 }
79
80 }