The version of Apache log4j used by SoundHelix.

[[ 🗃 ^aEp6o apache-log4j ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Commits]

Clone

HTTPS: git clone https://vervis.peers.community/repos/aEp6o

SSH: git clone USERNAME@vervis.peers.community:aEp6o

Branches

Tags

PRE_UGLI_MOVE :: src / java / org / apache / log4j / multiplex /

MultiplexAppender.java

package org.apache.log4j.multiplex;

import org.apache.log4j.Appender;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;

/**
 * 
 * TODO discuss how the Selector and AppenderFactory works
 * 
 * 
 * @author psmith
 *  
 */
public class MultiplexAppender extends AppenderSkeleton {

	private MultiplexSelector selector;

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.log4j.spi.OptionHandler#activateOptions()
	 */
	public void activateOptions() {


		// check that we have a selector of something at this point
		if (getSelector() == null) {
			throw new IllegalStateException(
					"Should have had a Selector defined at this point");
		}

        // TODO work out how the Selector has it's AppenderFactory configured by Joran
      

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.log4j.Appender#close()
	 */
	public void close() {
		getSelector().close();

	}

	/**
	 * @return Returns the selector.
	 */
	public final MultiplexSelector getSelector() {
		return selector;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.log4j.Appender#requiresLayout()
	 */
	public boolean requiresLayout() {
		//        TODO check this is correct
		return true;
	}

	/**
	 * @param selector
	 *            The selector to set.
	 */
	public final void setSelector(MultiplexSelector selector) {
		this.selector = selector;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.apache.log4j.WriterAppender#subAppend(org.apache.log4j.spi.LoggingEvent)
	 */
	protected void append(LoggingEvent event) {

		// we assume appropriate syncronization has occured on this appender

		// determinge the key to lookup the Appender to use
		Appender appender = getSelector().select(event);
		appender.doAppend(event);

	}
}
[See repo JSON]