package com.rzg.zombieland.comunes.misc;
import java.util.ArrayList;
import java.util.List;
/**
* Maneja un log de la aplicaci�n.
* TODO implementar log4j.
* @author nicolas
*
*/
public abstract class Log {
private static List<EscuchaLog> escuchadores = new ArrayList<EscuchaLog>();
/**
* Muestra todas las entradas del log.
*/
public static final int DEBUG = 0;
/**
* Muestra solo aquellas entradas que pueden aportar informaci�n �til a un usuario normal.
*/
public static final int INFO = 1;
/**
* Muestra solo las entradas que detallan errores.
*/
public static final int ERROR = 2;
/**
* Agrega un escuchador al log. El escuchador recibe todas las entradas de log.
* @param escuchador
*/
public static void agregarEscuchador(EscuchaLog escuchador) {
escuchadores.add(escuchador);
}
/**
* Registra una entrada de log con la m�nima prioridad.
* @param mensaje
*/
public static void debug(Object mensaje) {
String imprimir = "[DEBUG] " + mensaje;
for (EscuchaLog escuchador : escuchadores)
escuchador.onLog(imprimir, DEBUG);
System.out.println(imprimir);
}
/**
* Registra una entrada de log con una prioridad intermedia.
* @param mensaje
*/
public static void info(Object mensaje) {
String imprimir = "[INFO] " + mensaje;
for (EscuchaLog escuchador : escuchadores)
escuchador.onLog(imprimir, INFO);
System.out.println(imprimir);
}
/**
* Registra una entrada de log con la m�xima prioridad.
* @param mensaje
*/
public static void error(Object mensaje) {
String imprimir = "[ERROR] " + mensaje;
for (EscuchaLog escuchador : escuchadores)
escuchador.onLog(imprimir, ERROR);
System.err.println(imprimir);
}
}