package de.micromata.borgbutler.server.logging; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.spi.LoggingEvent; public enum LogLevel { ERROR, WARN, INFO, DEBUG, TRACE; /** * @param treshold * @return True, if this log level is equals or higher than given treshold. ERROR is the highest and TRACE the lowest. */ public boolean matches(LogLevel treshold) { if (treshold == null) { return true; } return this.ordinal() <= treshold.ordinal(); } public static LogLevel getLevel(LoggingEvent event) { switch (event.getLevel().toInt()) { case Level.ERROR_INT: return LogLevel.ERROR; case Level.INFO_INT: return LogLevel.INFO; case Level.DEBUG_INT: return LogLevel.DEBUG; case Level.WARN_INT: return LogLevel.WARN; case Level.TRACE_INT: return LogLevel.TRACE; default: return LogLevel.ERROR; } } public static String getSupportedValues() { return StringUtils.join(LogLevel.values(), ", "); } }