package communitycommons;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.mendix.core.Core;
import com.mendix.logging.ILogNode;
import communitycommons.proxies.LogLevel;
public class Logging
{
private static Map<String, Long> timers = new HashMap<String, Long>();
public static void log(String lognode, LogLevel loglevel, String message)
{
log(lognode, loglevel, message, null);
}
public static void log(String lognode, LogLevel loglevel, String message, Throwable e) {
ILogNode logger = Core.getLogger(lognode);
switch (loglevel) {
case Critical:
logger.critical(message,e);
break;
case Warning:
logger.warn(message,e);
break;
case Debug:
logger.debug(message);
break;
case Error:
logger.error(message,e);
break;
case Info:
logger.info(message);
break;
case Trace:
logger.trace(message);
break;
}
}
public static void simpleLog(String message)
{
Core.getLogger("Community_Commons").info(message);
}
public static Long measureEnd(String timerName, LogLevel loglevel,
String message)
{
Long cur = new Date().getTime();
if (!timers.containsKey(timerName))
throw new IllegalArgumentException();
String time = String.format("%d", cur - timers.get(timerName));
log("Utility_log", loglevel, "Timer " + timerName + " finished in " + time + " ms. " + message);
return timers.get(timerName);
}
public static void measureStart(String timerName)
{
timers.put(timerName, new Date().getTime());
}
}