view src/nabble/utils/Log4j.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line source

package nabble.utils;

import java.io.IOException;

import fschmidt.util.log4j.MultiAppender;
import org.apache.log4j.Appender;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.RollingFileAppender;


public final class Log4j {

	private static final PatternLayout LAYOUT = new PatternLayout("%d | %-5p | %c - %m%n");

	public static void initForConsole() {
		Logger.getRootLogger().setLevel(Level.INFO);
		PatternLayout layout = new PatternLayout("%d{HH:mm:ss} %-5p %c - %m%n");
		ConsoleAppender appender = new ConsoleAppender(layout,"System.err");
		Logger.getRootLogger().addAppender(appender);
	}

	public static void initForFile(Level level, String fileName)
			throws IOException
	{
		Logger.getRootLogger().setLevel(level);
		PatternLayout layout = new PatternLayout("%d | %-5p | %c - %m%n");
		FileAppender appender = new FileAppender(layout,fileName);
		Logger.getRootLogger().addAppender(appender);
	}

	public static void initBasicFiles(String infoFile, String warnFile, String errorFile, String maxFileSize)
			throws IOException
	{
		LogManager.getLoggerRepository().setThreshold(Level.INFO);

		RollingFileAppender infoAppender = new RollingFileAppender(LAYOUT, infoFile);
		infoAppender.setMaxFileSize(maxFileSize);
		infoAppender.setThreshold(Level.INFO);

		RollingFileAppender warnAppender = new RollingFileAppender(LAYOUT, warnFile);
		warnAppender.setMaxFileSize(maxFileSize);
		warnAppender.setThreshold(Level.WARN);

		RollingFileAppender errorAppender = new RollingFileAppender(LAYOUT, errorFile);
		errorAppender.setMaxFileSize(maxFileSize);
		errorAppender.setThreshold(Level.ERROR);

		MultiAppender appender = new MultiAppender(new Appender[] { infoAppender, warnAppender, errorAppender });
		Logger.getRootLogger().addAppender(appender);
	}

	public static void initForClass(String className, String fileName, String maxFileSize)
			throws IOException
	{
		Logger logger = Logger.getLogger(className);
		RollingFileAppender appender = new RollingFileAppender(LAYOUT, fileName);
		appender.setMaxFileSize(maxFileSize);
		logger.addAppender(appender);
	}

	private Log4j() {}  // never
}