package de.unigoettingen.sub.commons.ocr.web; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.apache.log4j.LogManager; import org.apache.log4j.MDC; import org.apache.log4j.PropertyConfigurator; public class LogSelector { public void logToFile(String filePath) { MDC.put("logFile", filePath); Properties props = readDefaults(); props.setProperty("log4j.rootLogger", "INFO, file, CONSOLE"); props.setProperty("log4j.logger.httpclient.wire", "ERROR"); props.setProperty("log4j.logger.org.apache.commons.httpclient", "WARN"); props.setProperty("log4j.appender.file", "org.apache.log4j.FileAppender"); props.setProperty("log4j.appender.file.File", filePath); props.setProperty("log4j.appender.file.layout", "org.apache.log4j.PatternLayout"); props.setProperty("log4j.appender.file.layout.ConversionPattern", "%-5p %d %l%n %m%n"); props.setProperty("log4j.appender.CONSOLE", "org.apache.log4j.ConsoleAppender"); props.setProperty("log4j.appender.CONSOLE.layout", "org.apache.log4j.PatternLayout"); props.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern", "%-5p %m %d %l (%X{logFile})%n"); LogManager.resetConfiguration(); PropertyConfigurator.configure(props); } private Properties readDefaults() { Properties props = new Properties(); try { InputStream configStream = getClass().getResourceAsStream("/log4j.properties"); props.load(configStream); configStream.close(); } catch (IOException e) { System.out.println("Error: Cannot load configuration file for logging. " + e.getMessage()); } return props; } public void useDefaults() { MDC.clear(); LogManager.resetConfiguration(); PropertyConfigurator.configure(readDefaults()); } }