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; + } }