1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j.helpers;
19
20 import java.io.Writer;
21 import java.io.FilterWriter;
22 import java.io.IOException;
23 import org.apache.log4j.spi.ErrorHandler;
24 import org.apache.log4j.spi.ErrorCode;
25
26
27 /***
28 QuietWriter does not throw exceptions when things go
29 wrong. Instead, it delegates error handling to its {@link ErrorHandler}.
30
31 @author Ceki Gülcü
32
33 @since 0.7.3
34 */
35 public class QuietWriter extends FilterWriter {
36
37 protected ErrorHandler errorHandler;
38
39 public
40 QuietWriter(Writer writer, ErrorHandler errorHandler) {
41 super(writer);
42 setErrorHandler(errorHandler);
43 }
44
45 public
46 void write(String string) {
47 try {
48 out.write(string);
49 } catch(IOException e) {
50 errorHandler.error("Failed to write ["+string+"].", e,
51 ErrorCode.WRITE_FAILURE);
52 }
53 }
54
55 public
56 void flush() {
57 try {
58 out.flush();
59 } catch(IOException e) {
60 errorHandler.error("Failed to flush writer,", e,
61 ErrorCode.FLUSH_FAILURE);
62 }
63 }
64
65
66 public
67 void setErrorHandler(ErrorHandler eh) {
68 if(eh == null) {
69
70 throw new IllegalArgumentException("Attempted to set null ErrorHandler.");
71 } else {
72 this.errorHandler = eh;
73 }
74 }
75 }