diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/App.java b/src/main/java/de/tudresden/inf/mci/brailleplot/App.java index 6f8eaf9e9545045668df4fd79cf3694eaf7761e7..8d66ab405f266714a2bfa6b8d930ab52a5b3d8c8 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/App.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/App.java @@ -1,5 +1,6 @@ package de.tudresden.inf.mci.brailleplot; +import ch.qos.logback.classic.Level; import de.tudresden.inf.mci.brailleplot.configparser.Format; import de.tudresden.inf.mci.brailleplot.configparser.JavaPropertiesConfigurationParser; import de.tudresden.inf.mci.brailleplot.configparser.Printer; @@ -154,13 +155,14 @@ public final class App { // Parse command line parameters CommandLineParser cliParser = new CommandLineParser(); if (CommandLineParser.checkForHelp(args)) { - // If requested, print help and exit - cliParser.printHelp(); + cliParser.printHelp(); // If requested, print help and exit return EXIT_SUCCESS; } SettingsWriter settings = cliParser.parse(args); SettingsReader settingsReader = settings; + setLoggingLevel(Level.valueOf(settingsReader.getSetting(SettingType.LOG_LEVEL).orElse("Info"))); + // Config Parsing JavaPropertiesConfigurationParser configParser; URL defaultConfig = getClass().getClassLoader().getResource("config/default.properties"); @@ -289,4 +291,9 @@ public final class App { return EXIT_SUCCESS; } + + public static void setLoggingLevel(final Level level) { + ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); + root.setLevel(level); + } } diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/CommandLineParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/CommandLineParser.java index 4c1c91670c6851c89bb859538456892e811c512f..de9296afe106a0fc48f28327f806c3531aacdb5e 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/CommandLineParser.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/CommandLineParser.java @@ -7,6 +7,7 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; +import java.util.Arrays; import java.util.Objects; @@ -43,7 +44,8 @@ public class CommandLineParser { .addOption("v", SettingType.VERTICAL_CSV.toString(), false, "Parse CSV in vertical instead of horizontal orientation (Only applicable for BarChart)") .addOption("i", SettingType.INHIBIT_PRINT.toString(), false, "Inhibit the printing process") .addOption("s", SettingType.SVG_EXPORT.toString(), true, "Base file path for export of svg file(s) (Omit '.svg' suffix)") - .addOption("b", SettingType.BYTE_DUMP.toString(), true, "Base file path for print data byte dump file(s) (Omit '.bin' suffix)"); + .addOption("b", SettingType.BYTE_DUMP.toString(), true, "Base file path for print data byte dump file(s) (Omit '.bin' suffix)") + .addOption("l", SettingType.LOG_LEVEL.toString(), true, "Logging output level. Possible Values: [All, Trace, Debug, Info, Warn, Error, Off] Defaults to 'Info'"); } /** @@ -77,7 +79,10 @@ public class CommandLineParser { // Will occur if any other option than "help" is encountered // For this case we can safely ignore it. } - if (Objects.nonNull(cmd) && cmd.hasOption(helpOption.getOpt())) { + if ((Objects.nonNull(cmd) && cmd.hasOption(helpOption.getOpt())) + || (args.length == 0) + || (Arrays.asList(args).contains("-" + helpOption.getOpt()) + || (Arrays.asList(args).contains("--" + helpOption.getLongOpt())))) { hasHelp = true; } return hasHelp; diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/SettingType.java b/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/SettingType.java index 43d2e34e0264f92b79775ed38710cba353be294b..8416660ded59ef6f4e5e0baace7c5fb5eac3b5b7 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/SettingType.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/commandline/SettingType.java @@ -18,7 +18,8 @@ public enum SettingType { VERTICAL_CSV("vertical-csv"), INHIBIT_PRINT("inhibit-print"), SVG_EXPORT("svg-export"), - BYTE_DUMP("byte-dump"); + BYTE_DUMP("byte-dump"), + LOG_LEVEL("log-level"); private final String mName; @@ -53,6 +54,8 @@ public enum SettingType { return SVG_EXPORT; case "byte-dump": return BYTE_DUMP; + case "log-level": + return LOG_LEVEL; default: throw new IllegalArgumentException("Setting not available"); }