import java.awt.EventQueue; import java.io.File; import java.io.IOException; import javax.swing.JOptionPane; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.FileAppender; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import util.GuiManager; import config.Config; import config.ConfigProxy; 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' try { logFile.renameTo(new File(logFilePath + ".old")); } catch (Exception e) { LOGGER.error("Could not move '" + logFilePath + "' to '" + logFilePath + ".old':"); e.printStackTrace(); } } // 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. BasicConfigurator.configure(fa); LOGGER.info("Starting logging to: " + logFilePath); } catch (IOException e) { e.printStackTrace(); } LOGGER.info("Logger initialised."); } public static void main(final String[] args) { // Pruefe und Erzeuge gegebenfalls Config try { Config.init(); } catch (IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, e.getMessage(), "Fehler", JOptionPane.ERROR_MESSAGE); return; } setupLogger(); // initialise the proxy settings try { ConfigProxy.init(); } catch (IOException e) { LOGGER.error("IOException when trying to initialise the proxy, see trace: ", e); } // start the GUI EventQueue.invokeLater(new Runnable() { public void run() { try { GuiManager.initGui(); } catch (Exception e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, e.getStackTrace(), "Message", JOptionPane.ERROR_MESSAGE); } } }); } }