package org.jabref.gui.errorconsole;
import java.util.Objects;
import java.util.Optional;
import org.jabref.gui.IconTheme;
import org.jabref.logic.util.OS;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.logging.log4j.core.LogEvent;
public class LogEventViewModel {
private LogEvent logEvent;
public LogEventViewModel(LogEvent logEvent) {
this.logEvent = Objects.requireNonNull(logEvent);
}
public String getDisplayText() {
return logEvent.getMessage().getFormattedMessage();
}
public String getStyleClass() {
switch (logEvent.getLevel().getStandardLevel()) {
case ERROR:
return "exception";
case WARN:
return "output";
case INFO:
default:
return "log";
}
}
public IconTheme.JabRefIcon getIcon() {
switch (logEvent.getLevel().getStandardLevel()) {
case ERROR:
return (IconTheme.JabRefIcon.INTEGRITY_FAIL);
case WARN:
return (IconTheme.JabRefIcon.INTEGRITY_WARN);
case INFO:
default:
return (IconTheme.JabRefIcon.INTEGRITY_INFO);
}
}
public Optional<String> getStackTrace() {
return Optional.ofNullable(logEvent.getMessage().getThrowable()).map(ExceptionUtils::getStackTrace);
}
public String getDetailedText() {
return getDisplayText() + getStackTrace().map(stacktrace -> OS.NEWLINE + stacktrace).orElse("");
}
}