* if (logger.check(POILogger.INFO)) {
* logger.log(POILogger.INFO, "Avoid concatenating " + " strings and evaluating " + functions());
* }
*
*
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
*/
boolean check(int level);
/**
* Log a message. Lazily appends Object parameters together.
* If the last parameter is a {@link Throwable} it is logged specially.
*
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
* @param objs the objects to place in the message
*/
default void log(int level, Object... objs) {
if (!check(level)) return;
StringBuilder sb = new StringBuilder(32);
Throwable lastEx = null;
for (int i=0; i