Wrapper function that enables logger invocation with log level as a parameter
Change-Id: I999ef173ffbc60ccc31795d107142cb4d671145b
diff --git a/utils/misc/src/main/java/org/onlab/util/Tools.java b/utils/misc/src/main/java/org/onlab/util/Tools.java
index 550b82f..caac1c1 100644
--- a/utils/misc/src/main/java/org/onlab/util/Tools.java
+++ b/utils/misc/src/main/java/org/onlab/util/Tools.java
@@ -894,4 +894,42 @@
checkNotNull(r, "r cannot be null");
return l.compareTo(r) >= 0 ? l : r;
}
+
+ /**
+ * Log level for the customized logger.
+ */
+ public enum LogLevel {
+ TRACE, DEBUG, INFO, WARN, ERROR
+ }
+
+ /**
+ * Wrapper function that enables logger invocation with log level as a parameter.
+ *
+ * @param logger logger
+ * @param level log level
+ * @param format format string
+ * @param args objects
+ */
+ public static void log(Logger logger, LogLevel level, String format, Object... args) {
+ switch (level) {
+ case TRACE:
+ logger.trace(format, args);
+ break;
+ case DEBUG:
+ logger.debug(format, args);
+ break;
+ case INFO:
+ logger.info(format, args);
+ break;
+ case WARN:
+ logger.warn(format, args);
+ break;
+ case ERROR:
+ logger.error(format, args);
+ break;
+ default:
+ log.error("Unknown log level {}", level);
+ break;
+ }
+ }
}