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

v1.3alpha8 :: src / java / org / apache / log4j / multiplex /

AppenderFactoryUtils.java

package org.apache.log4j.multiplex;

import java.text.MessageFormat;

import org.apache.log4j.Appender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Layout;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.rolling.RollingFileAppender;
import org.apache.log4j.rolling.TimeBasedRollingPolicy;
import org.apache.log4j.spi.LoggingEvent;

/**
 * @author psmith
 *  
 */
public class AppenderFactoryUtils {

	public static AppenderFactory createMDCAndDailyRollingAppenderFactory(
			final String fullFilePathAndPrefix, final String mdcKey,
			final Layout layout) {
		return new AppenderFactory() {

			public void activateOptions() {

			}

			public Appender create(LoggingEvent e) {
				String value = e.getProperty(mdcKey);

				String datePattern = "yyyy-MM-dd";

				TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy();
				String pattern = fullFilePathAndPrefix + "-" + value + "-%d{"
						+ datePattern + "}";

				tbrp.setFileNamePattern(pattern);
				tbrp.activateOptions();
				RollingFileAppender rfa = new RollingFileAppender();
				rfa.setRollingPolicy(tbrp);
				rfa.activateOptions();
				return rfa;

			}

		};

	}

	private AppenderFactoryUtils() {
	}

	/**
	 * @param mdcKey
	 * @param layout
	 * @return
	 */
	public static AppenderFactory createSimpleMDCbasedFileAppender(
			final String fullFilePathAndPrefix, final String mdcKey,
			final PatternLayout layout) {
		return new AppenderFactory() {

			public Appender create(LoggingEvent e) {
				String value = e.getProperty(mdcKey);
				String pattern = fullFilePathAndPrefix + "_{0}.log";
				try {
					FileAppender fileAppender = new FileAppender(layout,
							MessageFormat.format(pattern,
									new Object[] { value }));
					fileAppender.activateOptions();
					return fileAppender;
				} catch (Exception ex) {
					//throw new RuntimeException(ex);
          throw new RuntimeException();

				}
			}

			public void activateOptions() {

			}
		};
	}
}
[See repo JSON]