+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ * 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;
System.out.println(message);
t.printStackTrace();
}
-
+
}
public static void info(String message)
{
System.out.println(message);
}
-
+
}
public static void trace(String message, Throwable t)
{
System.out.println(message);
}
-
+
}
public static void info(String message, Throwable t)
System.out.println(message);
t.printStackTrace();
}
-
+
}
public static void warn(String message)
{
System.out.println(message);
}
-
+
}
public static void trace(String message)
System.out.println(message);
t.printStackTrace();
}
-
+
}
public static void error(String message)
{
System.err.println(message);
}
-
+
}
public static void error(String message, Throwable t)
System.err.println(message);
t.printStackTrace(System.err);
}
-
+
}
public static void fatal(String message)
{
System.err.println(message);
}
-
+
}
public static void fatal(String message, Throwable t)
System.err.println(message);
t.printStackTrace(System.err);
}
-
+
}
public static boolean isDebugEnabled()
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
}
}
+ 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";
}