
package com.trilead.ssh2.log;

import com.trilead.ssh2.DebugLogger;

import java.util.logging.Level;

/**
 * Logger - a very simple logger, mainly used during development.
 * Is not based on log4j (to reduce external dependencies).
 * However, if needed, something like log4j could easily be
 * hooked in.
 * <p>
 * For speed reasons, the static variables are not protected
 * with semaphores. In other words, if you dynamicaly change the
 * logging settings, then some threads may still use the old setting.
 * 
 * @author Christian Plattner, plattner@trilead.com
 * @version $Id: Logger.java,v 1.2 2008/03/03 07:01:36 cplattne Exp $
 */

public class Logger
{
	public static boolean enabled = false;
	public static DebugLogger logger = null;

	private String className;

	public final static Logger getLogger(Class x)
	{
		return new Logger(x);
	}

	public Logger(Class x)
	{
		this.className = x.getName();
	}

	public final boolean isEnabled()
	{
		return enabled;
	}

    public final void log(int lv, String message, Throwable cause)
   	{
		log(lv, message + ", " + cause);
   	}

	public final void log(int level, String message)
	{
		if (!enabled)
			return;

		DebugLogger target = logger;

		if (target == null)
			return;

		target.log(level, className, message);
	}
}
