//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.core.logging; import ch.qos.logback.classic.spi.ILoggingEvent; /** * An abstraction of a log event used for recent logs. * * Produces a reasonable string representation for debugging, but primarily used * for serialisation (e.g. to JSON). * * * */ public class RecentLog { private final ILoggingEvent ile; /** * New instance, created from the supplied Logback event. * * @param ile */ public RecentLog(ILoggingEvent ile) { this.ile = ile; } /** * Get the log message. * * @return message */ public String getMessage() { return ile.getFormattedMessage(); } /** * Get the level. * * @return the level */ public String getLevel() { return ile.getLevel().levelStr; } /** * Get the name of the logger. * * @return the name */ public String getLogger() { return ile.getLoggerName(); } /** * Get the thread name from which the log was created. * * @return the thread name */ public String getThread() { return ile.getThreadName(); } /** * Get the time the log was sent. * * @return timestamp */ public long getTimestamp() { return ile.getTimeStamp(); } @Override public String toString() { return String.format("%d %s %s %s: %s", getTimestamp(), getLevel(), getLogger(), getThread(), getMessage()); } }