/*******************************************************************************
 * Copyright (c) 2004-2008 Andras Schmidt, Andras Balogh, Istvan Rath and Daniel Varro
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Andras Schmidt, Andras Balogh, Istvan Rath - initial API and implementation
 *******************************************************************************/

package org.eclipse.viatra2.logger;

// fqn: org.eclipse.viatra2.logger.SimpleLoggerFactory

/**
 * This class implements a factory for the simple, standard output logger.
 */
public class SimpleLoggerFactory implements LoggerFactory {
	public String loggerId() {
		return "simple";
	}

	public String loggerName() {
		return "simple logger";
	}

	public String loggerDescription() {
		return "logs events on the standard console";
	}

	public Logger getLogger() {
		return new SimpleLogger();
	}
}
