package es.ejie.frmk.infraestructura.logs.base;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Appender;
import org.apache.log4j.net.SocketAppender;

/**
 * Clase empleada para la escritura de Logs y Trazas sobre una máquina remota previamente
 * especificada en los ficheros de configuración correspondientes. Establece los atributos
 * para el host y puerto de la máquina y retorna una instancia de la clase SocketAppender 
 * en base a los valores de esos atributos. 
 * <ul>
 * <li> Host máquina remota</li>
 * <li> Puerto máquina remota</li>
 * </ul>
 * @version 2.0 Fecha: 11-04-06
 */
public class Q70LogRemotoAppender {
	private static String host;
	private static int port;

	/** 
	 * Método que recibe un String y obtiene de él los datos del host y puerto
	 * de la máquina
	 * @param String con la url de la máquina remota (host:puerto)
	*/
	public static void setUrlLogAppender(String strUrl)
	{
		if ((strUrl != null) && (!strUrl.equals(""))) {
			host = StringUtils.substringBefore(strUrl,":");
			if (!StringUtils.substringAfter(strUrl,":").equals(""))
				port = Integer.parseInt(StringUtils.substringAfter(strUrl,":"));
		}
	}

	/** 
	 * Método que retorna una instancia de la clase SocketAppender en base
	 * a los datos de host y puerto establecidos.
	 * @param logAppender
	*/
	public static Appender getLogAppender()
	{
		SocketAppender logAppender = new SocketAppender(host, port);
		return logAppender;
	}
}