From 9deba732b06a1e046cc84a08a345f59eb3729a54 Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Mon, 31 Jul 2017 18:34:55 +1200 Subject: [PATCH] Added dependencies for slf4j --- pom.xml | 15 +++++++++ src/main/java/seng302/App.java | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) 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 a65c27d8..f4aad3df 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -1,16 +1,65 @@ 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; 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 +74,7 @@ public class App extends Application { // primaryStage.setMaximized(true); primaryStage.show(); + primaryStage.setOnCloseRequest(e -> { ClientPacketParser.appClose(); System.exit(0); @@ -34,6 +84,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); } }