package util.log;
import java.util.NoSuchElementException;
import java.util.Enumeration;
import string.StrUtil;
import util.list.List;
public class Log {
static private boolean console = false;
static private boolean recipients = false;
static private int defaultPriority = 0;
static private List theRecipients = new List();
static final int L_INF = 0;
static final int L_DBG = 1;
static final int L_WRN = 2;
static final int L_ERR = 3;
static private int defaultLevel = L_INF;
static private final String logLabels[] = {
"",
"(DEP) ",
"(AVS) ",
"(ERR) "
};
////////////////////////////////
// Metodos obsoletos (substituir por info)
public static void log(String msg, int priority, int level) {
msg = logLabels[level] + msg;
if (recipients)
for (Enumeration enum = theRecipients.elements(); enum.hasMoreElements(); ) {
LogRecipient rec = (LogRecipient) enum.nextElement();
rec.forward(msg, priority);
}
if (console)
System.out.println(StrUtil.getDate() + " " + msg);
}
public static void log(String msg, int priority) {
log(msg, priority, defaultLevel);
}
public static void log(String msg) {
log(msg, defaultPriority);
}
//
/////////////////////////////////
public static void info(String msg, int priority) {
log(msg, priority, L_INF);
}
public static void info(String msg, int priority, boolean dbg) {
if (dbg)
info(msg, priority);
}
public static void info(String msg) {
info(msg, defaultPriority);
}
public static void info(String msg, boolean dbg) {
if (dbg)
info(msg);
}
public static void debug(String msg, int priority) {
log(msg, priority, L_DBG);
}
public static void debug(String msg, int priority, boolean dbg) {
if (dbg)
debug(msg, priority);
}
public static void debug(String msg) {
debug(msg, defaultPriority);
}
public static void debug(String msg, boolean dbg) {
if (dbg)
debug(msg);
}
public static void warn(String msg, int priority) {
log(msg, priority, L_WRN);
}
public static void warn(String msg, int priority, boolean dbg) {
if (dbg)
warn(msg, priority);
}
public static void warn(String msg) {
warn(msg, defaultPriority);
}
public static void warn(String msg, boolean dbg) {
if (dbg)
warn(msg);
}
public static void err(String msg, int priority) {
log(msg, priority, L_ERR);
}
public static void err(String msg, int priority, boolean dbg) {
if (dbg)
err(msg, priority);
}
public static void err(String msg) {
err(msg, defaultPriority);
}
public static void err(String msg, boolean dbg) {
if (dbg)
err(msg);
}
public static void abort(String msg, int priority) {
err(msg, priority);
info("Abortando.", priority);
System.exit(1);
}
public static void abort(String msg, int priority, boolean dbg) {
if (dbg)
abort(msg, priority);
}
public static void abort(String msg) {
abort(msg, defaultPriority);
}
public static void abort(String msg, boolean dbg) {
if (dbg)
abort(msg);
}
public static void insert(LogRecipient rec) {
theRecipients.insert(rec);
}
public static void remove(LogRecipient rec) throws NoSuchElementException {
theRecipients.remove(rec);
}
public static void turnConsoleOn(boolean b) {
console = b;
}
public static void turnRecipientsOn(boolean b) {
recipients = b;
}
public static void setDefaultPriority(int priority) {
defaultPriority = priority;
}
}