diff options
author | Simon Rettberg | 2015-07-08 19:39:35 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-07-08 19:39:35 +0200 |
commit | 8d6cd17c330388aa13fd7c39802c7400d85f972c (patch) | |
tree | 5f2c5856f58b1454e24dc16fad10751dfe9d087b /dozentenmodul/src/main/java/org/openslx/dozmod/App.java | |
parent | oops (diff) | |
download | tutor-module-8d6cd17c330388aa13fd7c39802c7400d85f972c.tar.gz tutor-module-8d6cd17c330388aa13fd7c39802c7400d85f972c.tar.xz tutor-module-8d6cd17c330388aa13fd7c39802c7400d85f972c.zip |
[client] Redo package structure, add comments/TODOs, rename GUI classes
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/App.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/App.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/App.java b/dozentenmodul/src/main/java/org/openslx/dozmod/App.java new file mode 100644 index 00000000..c9fc369e --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/App.java @@ -0,0 +1,115 @@ +package org.openslx.dozmod; +import java.io.File; +import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.io.FileUtils; +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.FileAppender; +import org.apache.log4j.Logger; +import org.apache.log4j.PatternLayout; +import org.apache.log4j.spi.LoggingEvent; +import org.openslx.dozmod.gui.helper.GuiManager; +import org.openslx.dozmod.util.ProxyConfigurator; + +public class App { + + // Logger + private final static Logger LOGGER = Logger.getLogger(App.class); + + private static void setupLogger() { + + // path to the log file + final String logFilePath = Config.getPath() + System.getProperty("file.separator") + "bwSuite.log"; + + // check if we had an old log file + final File logFile = new File(logFilePath); + if (logFile.exists() && !logFile.isDirectory()) { + // we have one, rename it to 'bwSuite.log.old' + LOGGER.info("renaming old log file"); + try { + File oldFile = new File(logFilePath + ".old"); + FileUtils.forceDelete(oldFile); + logFile.renameTo(oldFile); + FileUtils.forceDelete(logFile); + } catch (Exception e) { + LOGGER.error("Could not move '" + logFilePath + "' to '" + logFilePath + ".old'", e); + } + } + + // add file appender to global logger + FileAppender fa = null; + try { + fa = new FileAppender(new PatternLayout("%d [%F:%M] %m%n"), logFilePath); + // All classes should log to file, configure global file appender. + } catch (IOException e) { + e.printStackTrace(); + BasicConfigurator.configure(); + return; + } + + final FileAppender ffa = fa; + final Pattern re = Pattern.compile("authorization:(\\w|\\+|/|\\s)+", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE); + + AppenderSkeleton ap = new AppenderSkeleton() { + + @Override + public boolean requiresLayout() { + return ffa.requiresLayout(); + } + + @Override + public void close() { + ffa.close(); + } + + @Override + protected void append(LoggingEvent event) { + String s = event.getRenderedMessage(); + if (s.contains("uthorization")) { + Matcher m = re.matcher(s); + if (!m.find()) { + LOGGER.warn("Could not match pattern!"); + } else { + s = m.replaceAll("Authorization: ***********"); + LOGGER.info("Patched log message"); + } + } + ffa.append(new LoggingEvent(event.getFQNOfLoggerClass(), event.getLogger(), + event.getTimeStamp(), event.getLevel(), s, event.getThreadName(), + event.getThrowableInformation(), event.getNDC(), event.getLocationInformation(), + event.getProperties())); + } + }; + + BasicConfigurator.configure(ap); + LOGGER.info("Starting logging to: " + logFilePath); + } + + public static void main(final String[] args) { + + // Pruefe und Erzeuge gegebenfalls Config + try { + Config.init(); + } catch (IOException e) { + e.printStackTrace(); + return; + } + + setupLogger(); + + // initialise the proxy settings + try { + ProxyConfigurator.init(); + } catch (IOException e) { + LOGGER.error("IOException when trying to initialise the proxy, see trace: ", e); + } + + // start the GUI + GuiManager.initGui(); + + } +} |