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 }