1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.logging.log4j.io;
19
20 import java.io.ByteArrayOutputStream;
21 import java.io.IOException;
22 import java.io.OutputStream;
23 import java.io.PrintStream;
24 import java.io.UnsupportedEncodingException;
25 import java.nio.charset.Charset;
26 import java.util.Locale;
27
28 import org.apache.logging.log4j.Level;
29 import org.apache.logging.log4j.Marker;
30 import org.apache.logging.log4j.io.internal.InternalPrintStream;
31 import org.apache.logging.log4j.spi.ExtendedLogger;
32
33
34
35
36
37
38
39
40
41 public class LoggerPrintStream extends PrintStream {
42 private static final String FQCN = LoggerPrintStream.class.getName();
43 private final InternalPrintStream psLogger;
44
45 protected LoggerPrintStream(final ExtendedLogger logger, final boolean autoFlush, final Charset charset,
46 final String fqcn, final Level level, final Marker marker)
47 throws UnsupportedEncodingException {
48 super(new PrintStream(new ByteArrayOutputStream()));
49 psLogger = new InternalPrintStream(logger, autoFlush, charset, fqcn == null ? FQCN : fqcn, level, marker);
50 }
51
52 protected LoggerPrintStream(final OutputStream out, final boolean autoFlush, final Charset charset,
53 final ExtendedLogger logger, final String fqcn, final Level level, final Marker marker)
54 throws UnsupportedEncodingException {
55 super(new PrintStream(out));
56 psLogger = new InternalPrintStream(out, autoFlush, charset, logger, fqcn == null ? FQCN : fqcn, level, marker);
57 }
58
59 private static Charset ensureNonNull(final Charset charset) {
60 return charset == null ? Charset.defaultCharset() : charset;
61 }
62
63 @Override
64 public LoggerPrintStream append(final char c) {
65 psLogger.append(c);
66 return this;
67 }
68
69 @Override
70 public LoggerPrintStream append(final CharSequence csq) {
71 psLogger.append(csq);
72 return this;
73 }
74
75 @Override
76 public LoggerPrintStream append(final CharSequence csq, final int start, final int end) {
77 psLogger.append(csq, start, end);
78 return this;
79 }
80
81 @Override
82 public boolean checkError() {
83 return psLogger.checkError();
84 }
85
86 @Override
87 public void close() {
88 psLogger.close();
89 }
90
91 @Override
92 public void flush() {
93 psLogger.flush();
94 }
95
96 @Override
97 public LoggerPrintStream format(final Locale l, final String format, final Object... args) {
98 psLogger.format(l, format, args);
99 return this;
100 }
101
102 @Override
103 public LoggerPrintStream format(final String format, final Object... args) {
104 psLogger.format(format, args);
105 return this;
106 }
107
108 @Override
109 public void print(final boolean b) {
110 psLogger.print(b);
111 }
112
113 @Override
114 public void print(final char c) {
115 psLogger.print(c);
116 }
117
118 @Override
119 public void print(final char[] s) {
120 psLogger.print(s);
121 }
122
123 @Override
124 public void print(final double d) {
125 psLogger.print(d);
126 }
127
128 @Override
129 public void print(final float f) {
130 psLogger.print(f);
131 }
132
133 @Override
134 public void print(final int i) {
135 psLogger.print(i);
136 }
137
138 @Override
139 public void print(final long l) {
140 psLogger.print(l);
141 }
142
143 @Override
144 public void print(final Object obj) {
145 psLogger.print(obj);
146 }
147
148 @Override
149 public void print(final String s) {
150 psLogger.print(s);
151 }
152
153 @Override
154 public LoggerPrintStream printf(final Locale l, final String format, final Object... args) {
155 psLogger.printf(l, format, args);
156 return this;
157 }
158
159 @Override
160 public LoggerPrintStream printf(final String format, final Object... args) {
161 psLogger.printf(format, args);
162 return this;
163 }
164
165 @Override
166 public void println() {
167 psLogger.println();
168 }
169
170 @Override
171 public void println(final boolean x) {
172 psLogger.println(x);
173 }
174
175 @Override
176 public void println(final char x) {
177 psLogger.println(x);
178 }
179
180 @Override
181 public void println(final char[] x) {
182 psLogger.println(x);
183 }
184
185 @Override
186 public void println(final double x) {
187 psLogger.println(x);
188 }
189
190 @Override
191 public void println(final float x) {
192 psLogger.println(x);
193 }
194
195 @Override
196 public void println(final int x) {
197 psLogger.println(x);
198 }
199
200 @Override
201 public void println(final long x) {
202 psLogger.println(x);
203 }
204
205 @Override
206 public void println(final Object x) {
207 psLogger.println(x);
208 }
209
210 @Override
211 public void println(final String x) {
212 psLogger.println(x);
213 }
214
215 @Override
216 public String toString() {
217 return LoggerPrintStream.class.getSimpleName() + psLogger.toString();
218 }
219
220 @Override
221 public void write(final byte[] b) throws IOException {
222 psLogger.write(b);
223 }
224
225 @Override
226 public void write(final byte[] b, final int off, final int len) {
227 psLogger.write(b, off, len);
228 }
229
230 @Override
231 public void write(final int b) {
232 psLogger.write(b);
233 }
234 }