diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/utils/Log4j.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,67 @@
+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
+}