SMTPLogsAppender.java
package com.nilhcem.fakesmtp.log;
import java.util.Observable;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
/**
* Logback appender class, which will redirect all logs to the {@code LogsPane} object.
*
* @author Nilhcem
* @since 1.0
* @param <E> a Logback logging event.
*/
public final class SMTPLogsAppender<E> extends AppenderBase<E> {
private SMTPLogsObservable observable = new SMTPLogsObservable();
/**
* Receives a log from Logback, and sends it to the {@code LogsPane} object.
*
* @param event a Logback {@code ILoggingEvent} event.
*/
@Override
protected void append(E event) {
if (event instanceof ILoggingEvent) {
ILoggingEvent loggingEvent = (ILoggingEvent) event;
observable.notifyObservers(loggingEvent.getFormattedMessage());
}
}
/**
* Returns the log observable object.
*
* @return the log observable object.
*/
public Observable getObservable() {
return observable;
}
}