diff --git a/src/main/java/net/imagej/legacy/ImageJ2Options.java b/src/main/java/net/imagej/legacy/ImageJ2Options.java
index b7208dbbe..12b79b32a 100644
--- a/src/main/java/net/imagej/legacy/ImageJ2Options.java
+++ b/src/main/java/net/imagej/legacy/ImageJ2Options.java
@@ -75,15 +75,22 @@ public class ImageJ2Options extends OptionsPlugin implements Interactive {
* This system leverages the SCIFIO
* library to open image files.
*/
- @Parameter(
- label = "Use SCIFIO when opening files (BETA!)",
- description = "Whether to use ImageJ2's file I/O mechanism when "
- + "opening files.
Image files will be opened using the SCIFIO library "
- + "(SCientific Image
Format Input and Output), which provides truly "
- + "extensible support for
reading and writing image file formats.",
+ @Parameter(label = "Use SCIFIO when opening files (BETA!)",
+ description = "Whether to use ImageJ2's file I/O mechanism when " +
+ "opening files.
Image files will be opened using the SCIFIO library " +
+ "(SCientific Image
Format Input and Output), which provides truly " +
+ "extensible support for
reading and writing image file formats.",
callback = "run")
private boolean sciJavaIO = false;
+ @Parameter(label = "SciJava log level",
+ description = "Log level for SciJava",
+ initializer = "initializeLogLevel", //
+ callback = "setLogLevel", //
+ choices = { "ERROR", "WARN", "INFO", "DEBUG", "TRACE" }, //
+ persist = false)
+ private String logLevel;
+
@Parameter(label = "What is ImageJ2?", persist = false, callback = "help")
private Button help;
@@ -201,4 +208,56 @@ private void help() {
System.err.println(message);
}
}
+
+ @SuppressWarnings("unused")
+ private void initializeLogLevel() {
+ logLevel = parseLogLevel(log.getLevel());
+ }
+
+ @SuppressWarnings("unused")
+ private void setLogLevel() {
+ log.setLevel(parseLogLevel(logLevel));
+ }
+
+ /**
+ * Parses a log level from a {@code String}.
+ *
+ * @param level
+ * @return the {@code int} associated with the level
+ */
+ private int parseLogLevel(final String level) {
+ switch (level) {
+ case "NONE": return LogService.NONE;
+ case "ERROR": return LogService.ERROR;
+ case "WARN": return LogService.WARN;
+ case "INFO": return LogService.INFO;
+ case "DEBUG": return LogService.DEBUG;
+ case "TRACE": return LogService.TRACE;
+ }
+
+ return LogService.WARN;
+ }
+
+ /**
+ * Parses a log level from an {@code int}.
+ *
+ * @param level
+ * @return the {@code String} associated with the level
+ */
+ private String parseLogLevel(int level) {
+ if (level == LogService.NONE)
+ return "NONE";
+ if (level == LogService.ERROR)
+ return "ERROR";
+ if (level == LogService.WARN)
+ return "WARN";
+ if (level == LogService.INFO)
+ return "INFO";
+ if (level == LogService.DEBUG)
+ return "DEBUG";
+ if (level == LogService.TRACE)
+ return "TRACE";
+
+ return "" + level;
+ }
}