package org.sef4j.log.slf4j;
import org.slf4j.Logger;
import ch.qos.logback.classic.Level;
public class Slf4jLoggerUtil {
public static LogLevel slf4jLevelToLogLevel(ch.qos.logback.classic.Level slf4jLevel) {
switch(slf4jLevel.toInt()) {
case Level.OFF_INT: return LogLevel.OFF;
case Level.ERROR_INT: return LogLevel.ERROR;
case Level.WARN_INT: return LogLevel.WARN;
case Level.INFO_INT: return LogLevel.INFO;
case Level.DEBUG_INT: return LogLevel.DEBUG;
case Level.TRACE_INT: return LogLevel.TRACE;
case Level.ALL_INT: return LogLevel.TRACE; // not a level.. use TRACE
default: return LogLevel.TRACE;
}
}
public static boolean isEnabled(Logger slf4jLogger, LogLevel logLevel) {
switch(logLevel) {
case OFF: return false;
case TRACE: return slf4jLogger.isTraceEnabled();
case DEBUG: return slf4jLogger.isDebugEnabled();
case INFO: return slf4jLogger.isInfoEnabled();
case WARN: return slf4jLogger.isWarnEnabled();
case ERROR: return slf4jLogger.isErrorEnabled();
default: return false;
}
}
public static void logLevelText(Logger slf4jLogger, LogLevel logLevel, String text) {
switch(logLevel) {
case OFF:
break;
case TRACE:
slf4jLogger.trace(text);
break;
case DEBUG:
slf4jLogger.debug(text);
break;
case INFO:
slf4jLogger.info(text);
break;
case WARN:
slf4jLogger.warn(text);
break;
case ERROR:
slf4jLogger.error(text);
break;
default:
break;
}
}
public static void logLevelTextException(Logger slf4jLogger, LogLevel logLevel, String text, Throwable ex) {
switch(logLevel) {
case OFF:
break;
case TRACE:
slf4jLogger.trace(text, ex);
break;
case DEBUG:
slf4jLogger.debug(text, ex);
break;
case INFO:
slf4jLogger.info(text, ex);
break;
case WARN:
slf4jLogger.warn(text, ex);
break;
case ERROR:
slf4jLogger.error(text, ex);
break;
default:
break;
}
}
}