/**
*
*/
package org.feature.multi.perspective.model.edit.log4J;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.WriterAppender;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.MessageConsole;
/**
* Log4JAppender for the eclipse runtime console.
* @author Tim Winkelmann
*
*/
public class Log4JAppender extends WriterAppender {
/**
* name of the console.
*/
public static final String consoleName = "Cluster";
/**
* creates the Log4JAppender.
*/
public Log4JAppender() {
super(new SimpleLayout(), findConsole(consoleName).newMessageStream());
}
/**
* fins a console by a name.
*
* @param name use the {@link Util}.consoleName
* @return a Console
*/
public static MessageConsole findConsole(String name) {
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (int i = 0; i < existing.length; i++)
if (name.equals(existing[i].getName()))
return (MessageConsole) existing[i];
// no console found, so create a new one
MessageConsole myConsole = new MessageConsole(name, null);
conMan.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
}