1 package chapter5;
2
3 import ch.qos.logback.classic.spi.LoggingEvent;
4 import ch.qos.logback.core.LayoutBase;
5
6 public class MySampleLayout2 extends LayoutBase<LoggingEvent> {
7
8 String prefix = null;
9 boolean printThreadName = true;
10
11 public void setPrefix(String prefix) {
12 this.prefix = prefix;
13 }
14
15 public void setPrintThreadName(boolean printThreadName) {
16 this.printThreadName = printThreadName;
17 }
18
19 public String doLayout(LoggingEvent event) {
20 StringBuffer sbuf = new StringBuffer(128);
21 if (prefix != null) {
22 sbuf.append(prefix + ": ");
23 }
24 sbuf.append(event.getTimeStamp() - LoggingEvent.getStartTime());
25 sbuf.append(" ");
26 sbuf.append(event.getLevel());
27 if (printThreadName) {
28 sbuf.append(" [");
29 sbuf.append(event.getThreadName());
30 sbuf.append("] ");
31 } else {
32 sbuf.append(" ");
33 }
34 sbuf.append(event.getLoggerRemoteView().getName());
35 sbuf.append(" - ");
36 sbuf.append(event.getFormattedMessage());
37 sbuf.append(LINE_SEP);
38 return sbuf.toString();
39 }
40 }