Mercurial Hosting > nabble
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 +}