JAL-629 bootstrap args and properties. Remember index of args for 'previous structure...
[jalview.git] / src / jalview / bin / Console.java
index b85a4d2..b868e7b 100644 (file)
@@ -212,29 +212,47 @@ public class Console
 
   public static JLogger.LogLevel getCachedLogLevel(String key)
   {
-    return JLogger.toLevel(Cache.getDefault(key, "INFO"));
+    return getLogLevel(Cache.getDefault(key, "INFO"));
+  }
+
+  public static JLogger.LogLevel getLogLevel(String level)
+  {
+    return JLogger.toLevel(level);
   }
 
   public static boolean initLogger()
   {
+    return initLogger(null);
+  }
+
+  public static boolean initLogger(String providedLogLevel)
+  {
     if (log != null)
     {
       return true;
     }
     try
     {
-      JLogger.LogLevel cachedLevel = getCachedLogLevel();
+      JLogger.LogLevel logLevel = JLogger.LogLevel.INFO;
+
+      if (JLogger.isLevel(providedLogLevel))
+        logLevel = Console.getLogLevel(providedLogLevel);
+      else
+        logLevel = getCachedLogLevel();
+
       if (!Platform.isJS())
       {
-        Log4j.init(cachedLevel);
+        System.err
+                .println("Setting initial log level to " + logLevel.name());
+        Log4j.init(logLevel);
       }
       // log output
       // is laxis used? Does getLogger do anything without a Logger object?
       // Logger laxis = Log4j.getLogger("org.apache.axis", myLevel);
-      JLoggerLog4j.getLogger("org.apache.axis", cachedLevel);
+      JLoggerLog4j.getLogger("org.apache.axis", logLevel);
 
       // The main application logger
-      log = JLoggerLog4j.getLogger(Cache.JALVIEW_LOGGER_NAME, cachedLevel);
+      log = JLoggerLog4j.getLogger(Cache.JALVIEW_LOGGER_NAME, logLevel);
     } catch (NoClassDefFoundError e)
     {
       System.err.println("Could not initialise the logger framework");