X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FConsole.java;h=4b18484de686575c3b5f331ac4017ab3b2857eb8;hb=353cb52722490edcba2c13b18836b6d37c5455de;hp=0b5a38afbbc7e1bf7a8a0f934818678ff78d46ac;hpb=cb8e52fbbc5f725e3f7f48c672cdddb0690bd978;p=jalview.git diff --git a/src/jalview/bin/Console.java b/src/jalview/bin/Console.java index 0b5a38a..4b18484 100644 --- a/src/jalview/bin/Console.java +++ b/src/jalview/bin/Console.java @@ -1,6 +1,29 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.bin; +import java.util.Locale; + import jalview.log.JLogger; +import jalview.log.JLoggerI; import jalview.log.JLoggerI.LogLevel; import jalview.log.JLoggerLog4j; import jalview.util.ChannelProperties; @@ -23,7 +46,7 @@ public class Console System.out.println(message); t.printStackTrace(); } - + } public static void info(String message) @@ -36,7 +59,7 @@ public class Console { System.out.println(message); } - + } public static void trace(String message, Throwable t) @@ -62,7 +85,7 @@ public class Console { System.out.println(message); } - + } public static void info(String message, Throwable t) @@ -76,7 +99,7 @@ public class Console System.out.println(message); t.printStackTrace(); } - + } public static void warn(String message) @@ -89,7 +112,7 @@ public class Console { System.out.println(message); } - + } public static void trace(String message) @@ -115,7 +138,7 @@ public class Console System.out.println(message); t.printStackTrace(); } - + } public static void error(String message) @@ -128,7 +151,7 @@ public class Console { System.err.println(message); } - + } public static void error(String message, Throwable t) @@ -142,7 +165,7 @@ public class Console System.err.println(message); t.printStackTrace(System.err); } - + } public static void fatal(String message) @@ -155,7 +178,7 @@ public class Console { System.err.println(message); } - + } public static void fatal(String message, Throwable t) @@ -169,7 +192,7 @@ public class Console System.err.println(message); t.printStackTrace(System.err); } - + } public static boolean isDebugEnabled() @@ -189,39 +212,60 @@ 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); + if (!Jalview.quiet()) + { + 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"); e.printStackTrace(); } - + // Test message if (log != null) { - // Logging test message should got through the logger object + // Logging test message should go through the logger object if (log.loggerExists()) log.debug(Console.LOGGING_TEST_MESSAGE); // Tell the user that debug is enabled @@ -235,6 +279,24 @@ public class Console } } + public static void setLogLevel(String logLevelString) + { + for (LogLevel logLevel : JLoggerI.LogLevel.values()) + { + if (logLevel.toString().toLowerCase(Locale.ROOT) + .equals(logLevelString.toLowerCase(Locale.ROOT))) + { + log.setLevel(logLevel); + if (!Platform.isJS()) + { + Log4j.init(logLevel); + } + JLoggerLog4j.getLogger("org.apache.axis", logLevel); + break; + } + } + } + public final static String LOGGING_TEST_MESSAGE = "Logging to STDERR"; }