X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FConsole.java;fp=src%2Fjalview%2Fbin%2FConsole.java;h=0b5a38afbbc7e1bf7a8a0f934818678ff78d46ac;hb=3efc24bc7b7855ff135fa96e35ab1004eaeb4f5e;hp=0000000000000000000000000000000000000000;hpb=dae56c38c3f14e96308540c30f35ca8f1d917edf;p=jalview.git diff --git a/src/jalview/bin/Console.java b/src/jalview/bin/Console.java new file mode 100644 index 0000000..0b5a38a --- /dev/null +++ b/src/jalview/bin/Console.java @@ -0,0 +1,240 @@ +package jalview.bin; + +import jalview.log.JLogger; +import jalview.log.JLoggerI.LogLevel; +import jalview.log.JLoggerLog4j; +import jalview.util.ChannelProperties; +import jalview.util.Log4j; +import jalview.util.Platform; + +public class Console +{ + + public static JLoggerLog4j log; + + public static void debug(String message, Throwable t) + { + if (Console.initLogger()) + { + log.debug(message, t); + } + else + { + System.out.println(message); + t.printStackTrace(); + } + + } + + public static void info(String message) + { + if (Console.initLogger()) + { + log.info(message, null); + } + else + { + System.out.println(message); + } + + } + + public static void trace(String message, Throwable t) + { + if (Console.initLogger()) + { + log.trace(message, t); + } + else + { + System.out.println(message); + t.printStackTrace(); + } + } + + public static void debug(String message) + { + if (Console.initLogger()) + { + log.debug(message, null); + } + else + { + System.out.println(message); + } + + } + + public static void info(String message, Throwable t) + { + if (Console.initLogger()) + { + log.info(message, t); + } + else + { + System.out.println(message); + t.printStackTrace(); + } + + } + + public static void warn(String message) + { + if (Console.initLogger()) + { + log.warn(message, null); + } + else + { + System.out.println(message); + } + + } + + public static void trace(String message) + { + if (Console.initLogger()) + { + log.trace(message, null); + } + else + { + System.out.println(message); + } + } + + public static void warn(String message, Throwable t) + { + if (Console.initLogger()) + { + log.warn(message, t); + } + else + { + System.out.println(message); + t.printStackTrace(); + } + + } + + public static void error(String message) + { + if (Console.initLogger()) + { + log.error(message, null); + } + else + { + System.err.println(message); + } + + } + + public static void error(String message, Throwable t) + { + if (Console.initLogger()) + { + log.error(message, t); + } + else + { + System.err.println(message); + t.printStackTrace(System.err); + } + + } + + public static void fatal(String message) + { + if (Console.initLogger()) + { + log.fatal(message, null); + } + else + { + System.err.println(message); + } + + } + + public static void fatal(String message, Throwable t) + { + if (Console.initLogger()) + { + log.fatal(message, t); + } + else + { + System.err.println(message); + t.printStackTrace(System.err); + } + + } + + public static boolean isDebugEnabled() + { + return log == null ? false : log.isDebugEnabled(); + } + + public static boolean isTraceEnabled() + { + return log == null ? false : log.isTraceEnabled(); + } + + public static JLogger.LogLevel getCachedLogLevel() + { + return Console.getCachedLogLevel(Cache.JALVIEWLOGLEVEL); + } + + public static JLogger.LogLevel getCachedLogLevel(String key) + { + return JLogger.toLevel(Cache.getDefault(key, "INFO")); + } + + public static boolean initLogger() + { + if (log != null) + { + return true; + } + try + { + JLogger.LogLevel cachedLevel = getCachedLogLevel(); + if (!Platform.isJS()) + { + Log4j.init(cachedLevel); + } + // 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); + + // The main application logger + log = JLoggerLog4j.getLogger(Cache.JALVIEW_LOGGER_NAME, cachedLevel); + } 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 + if (log.loggerExists()) + log.debug(Console.LOGGING_TEST_MESSAGE); + // Tell the user that debug is enabled + debug(ChannelProperties.getProperty("app_name") + + " Debugging Output Follows."); + return true; + } + else + { + return false; + } + } + + public final static String LOGGING_TEST_MESSAGE = "Logging to STDERR"; + +}