package ca.concordia.cssanalyser.app;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.FileAppender;
public class FileLogger {
private static Logger logBackLogger = null;
private static LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
private static List<FileAppender<ILoggingEvent>> appenders = new ArrayList<>();
public static org.slf4j.Logger getLogger(Class<?> clazz) {
logBackLogger = loggerContext.getLogger(clazz.getName());
if (appenders.size() > 0)
for (FileAppender<ILoggingEvent> appender : appenders)
logBackLogger.addAppender(appender);
return logBackLogger;
}
public static void addFileAppender(String filePath, boolean append) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setContext(loggerContext);
fileAppender.setName("css-analyzer");
// set the file name
fileAppender.setFile(filePath);
fileAppender.setAppend(append);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
//encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level - %msg [%C{1}]%n");
encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n");
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
appenders.add(fileAppender);
logBackLogger.addAppender(fileAppender);
}
}