package es.ejie.frmk.infraestructura.traza;



/**
 * Interface para mostrar trazas de la forma definida por la configuracion de Geremua y por las aplicaciones.
 * Esta interface es la que se usa en el desarrollo de aplicaciones.
 * 
 * @version 1.0
 * Fecha: 22-feb-06
 */
public interface Q70TrazaInterface {
	/**
	 * Devuelve true si la traza está activada. 
	 */
	public boolean isTraceActive();
	/**
	 * Escribe una traza.
	 * <p>
	 * Escribe en la salida de la traza la información recogida en los datos genericos 
	 * definidos en el fichero XML de configuración y los pasados como parámetros. 
	 * Antes de realizar la escritura, se comprueba la condición y que el nivel esté abierto.
	 * <p>
	 * Posibles valores de nivel de traza:
	 * <ul>
	 * <li>Q70TraceLevel.DEBUG
	 * <li>Q70TraceLevel.WARN
	 * <li>Q70TraceLevel.INFO
	 * <li>Q70TraceLevel.ERROR
	 * <li>Q70TraceLevel.FATAL
	 * </ul>
	 * <p>
	 * El modo de actuar es el siguiente:
	 * <p>
	 * <b>
	 *	Q70TrazaInterface traza = Q70Factoria.getTraza();<br>
	 *	if (traza.isTraceActive())<br>
	 *  &nbsp;&nbsp;&nbsp;&nbsp;traza.trace(Q70Constantes.ID_COMPONENTE, Q70TraceLevel.DEBUG,"texto");
	 * </b>
	 * <p>
	 * De este modo se mejora el rendimiento para casos en que la traza no debe estar habilitada, 
	 * porque la máquina virtual se ahorra trabajar en la construcción de los parámetros.
	 *
	 * @param componente
	 * @param nivel
	 * @param mensaje
	 */
	public void trace(String componente, Q70TraceLevel nivel, String mensaje);
}