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