diff --git a/pom.xml b/pom.xml
index 296a4f01..79d2be71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,8 +43,23 @@
freemarker
2.3.26-incubating
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.1.7
+
+
+
+ commons-cli
+ commons-cli
+ 1.4
+
+
+
diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java
index dbf6a807..c3b85e64 100644
--- a/src/main/java/seng302/App.java
+++ b/src/main/java/seng302/App.java
@@ -1,14 +1,66 @@
package seng302;
+import ch.qos.logback.classic.Level;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
+import org.apache.commons.cli.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import seng302.client.ClientPacketParser;
+import seng302.client.ClientState;
+import seng302.models.PolarTable;
import seng302.model.PolarTable;
public class App extends Application {
+ private static Logger logger = LoggerFactory.getLogger(App.class);
+
+ public static void parseArgs(String[] args) throws ParseException {
+ Options options = new Options();
+ CommandLineParser parser = new DefaultParser();
+ CommandLine cmd;
+
+ ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
+
+ options.addOption("debugLevel", true, "Set the application debug level");
+
+ cmd = parser.parse(options, args);
+
+ if (cmd.hasOption("debugLevel")){
+
+ switch (cmd.getOptionValue("debugLevel")){
+ case "DEBUG":
+ rootLogger.setLevel(Level.DEBUG);
+ break;
+
+ case "ALL":
+ rootLogger.setLevel(Level.ALL);
+ break;
+
+ case "WARNING":
+ rootLogger.setLevel(Level.WARN);
+ break;
+
+ case "ERROR":
+ rootLogger.setLevel(Level.ERROR);
+ break;
+
+ case "INFO":
+ rootLogger.setLevel(Level.INFO);
+
+ case "TRACE":
+ rootLogger.setLevel(Level.TRACE);
+
+ default:
+ rootLogger.setLevel(Level.ALL);
+ }
+ } else{
+ rootLogger.setLevel(Level.WARN);
+ }
+ }
@Override
public void start(Stage primaryStage) throws Exception {
@@ -25,6 +77,7 @@ public class App extends Application {
// primaryStage.setMaximized(true);
primaryStage.show();
+
primaryStage.setOnCloseRequest(e -> {
// ClientPacketParser.appClose();
// ClientPacketParser.appClose();
@@ -35,6 +88,12 @@ public class App extends Application {
}
public static void main(String[] args) {
+ try {
+ parseArgs(args);
+ } catch (ParseException e) {
+ logger.error("Could not parse command line arguments");
+ }
+
launch(args);
}
}