1
2
3
4
5
6
7
8
9
10
11
12
13
14 package chapters.migrationFromLog4j;
15
16 import java.io.IOException;
17
18 import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
19 import ch.qos.logback.classic.spi.ILoggingEvent;
20 import ch.qos.logback.core.AppenderBase;
21
22 public class TrivialLogbackAppender extends AppenderBase<ILoggingEvent> {
23
24 PatternLayoutEncoder encoder;
25
26 public PatternLayoutEncoder getEncoder() {
27 return encoder;
28 }
29
30 public void setEncoder(PatternLayoutEncoder encoder) {
31 this.encoder = encoder;
32 }
33
34 @Override
35 public void start() {
36 if (this.encoder == null) {
37 addError("No encoder set for the appender named [" + name + "].");
38 return;
39 }
40 try {
41 encoder.init(System.out);
42 } catch (IOException e) {
43 }
44 super.start();
45 }
46
47 @Override
48 protected void append(ILoggingEvent loggingevent) {
49
50
51 try {
52 this.encoder.doEncode(loggingevent);
53 } catch (IOException e) {
54
55 super.stop();
56 addError("Failed to write to the console");
57 }
58 }
59
60 }