package codeine.utils.logging;
import java.io.IOException;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
import codeine.utils.FilesUtils;
public class Log4jUtils {
public static void initAppender(String logDir, String logFileName) {
setLogger(logDir, logFileName);
}
private static void setLogger(String logDir, String logFileName) {
String logfile = logDir + "/" + logFileName;
if (logToStdout()) {
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.INFO);
return;
}
FilesUtils.mkdirs(logDir);
String pattern = "%d{ISO8601} [%t] [%c{1}] %p %m %n";
PatternLayout layout = new PatternLayout(pattern);
RollingFileAppender appender;
try {
appender = new RollingFileAppender(layout, logfile, true);
} catch (IOException e) {
throw new RuntimeException(e);
}
appender.setMaxBackupIndex(5);
appender.setMaximumFileSize(10 * 1000000);
Logger.getRootLogger().addAppender(appender);
Logger.getRootLogger().setLevel(Level.INFO);
if (System.getProperty("debug") != null && System.getProperty("debug").equals("true")) {
Logger.getRootLogger().setLevel(Level.DEBUG);
}
}
public static boolean logToStdout() {
return Boolean.getBoolean("log.to.stdout");
}
}