package net.varkhan.base.management.logging; /** * <b>A logger resolver.</b> * <p/> * * @author varkhan * @date Nov 25, 2010 * @time 11:05:34 PM * * @param <T> the log event type */ public interface LogResolver<T> extends LogConfig { /** * Get a log handler, for a given context and filter key. * * @param ctx a context name * @param key a filter key * * @return a log handler for those parameters */ public Logger<T> getLogger(String ctx, String key); /** * Dispatch a log event, with a event weight of {@literal 1}. * * @param ctx a context name * @param key a filter key * @param lev a severity level * @param msg the event content */ public void log(String ctx, String key, int lev, T msg); /** * Dispatch a log event. * * @param ctx a context name * @param key a filter key * @param lev a severity level * @param val the event weight * @param msg the event content */ public void log(String ctx, String key, int lev, double val, T msg); /** * Return the logging level mask. * * @param ctx a context name * @param key a filter key * * @return the enabled severity level mask for context {@code ctx} and key {@code key}, * with a non-zero sign bit (set bit of {@link LogConfig#SET_MARKER}) * or {@literal 0L} if the mask is not defined */ public long getLevelMask(String ctx, String key); /** * Indicate whether a particular logging level is enabled. * * @param ctx a context name * @param key a filter key * @param lev a severity level * * @return {@code true} iff logging for the severity level {@code lev} is enabled, for context {@code ctx} and key {@code key} */ public boolean isLevelEnabled(String ctx, String key, int lev); }