*/
package jalview.bin;
+import java.io.PrintStream;
+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;
}
else
{
- System.out.println(message);
- t.printStackTrace();
+ outPrintln(message);
+ Console.printStackTrace(t);
}
}
}
else
{
- System.out.println(message);
+ outPrintln(message);
}
}
}
else
{
- System.out.println(message);
- t.printStackTrace();
+ outPrintln(message);
+ Console.printStackTrace(t);
}
}
}
else
{
- System.out.println(message);
+ outPrintln(message);
}
}
}
else
{
- System.out.println(message);
- t.printStackTrace();
+ outPrintln(message);
+ Console.printStackTrace(t);
}
}
}
else
{
- System.out.println(message);
+ outPrintln(message);
}
}
}
else
{
- System.out.println(message);
+ outPrintln(message);
}
}
}
else
{
- System.out.println(message);
- t.printStackTrace();
+ outPrintln(message);
+ Console.printStackTrace(t);
}
}
}
else
{
- System.err.println(message);
+ jalview.bin.Console.errPrintln(message);
}
}
}
else
{
- System.err.println(message);
- t.printStackTrace(System.err);
+ jalview.bin.Console.errPrintln(message);
+ Console.printStackTrace(t);
}
}
}
else
{
- System.err.println(message);
+ jalview.bin.Console.errPrintln(message);
}
}
}
else
{
- System.err.println(message);
- t.printStackTrace(System.err);
+ jalview.bin.Console.errPrintln(message);
+ Console.printStackTrace(t);
}
}
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 JLogger getLogger()
+ {
+ return log;
}
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())
+ {
+ jalview.bin.Console.errPrintln(
+ "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();
+ jalview.bin.Console
+ .errPrintln("Could not initialise the logger framework");
+ Console.printStackTrace(e);
}
// 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 static void outPrint()
+ {
+ outPrint("");
+ }
+
+ public static void outPrintln()
+ {
+ outPrintln("");
+ }
+
+ public static void outPrint(Object message)
+ {
+ outPrintMessage(message, false, false);
+ }
+
+ public static void outPrint(Object message, boolean forceStdout)
+ {
+ outPrintMessage(message, false, forceStdout);
+ }
+
+ public static void outPrintln(Object message)
+ {
+ outPrintMessage(message, true, false);
+ }
+
+ public static PrintStream outputStream(boolean forceStdout)
+ {
+ // send message to stderr if an output file to stdout is expected
+ if (!forceStdout && Jalview.getInstance() != null
+ && Jalview.getInstance().getBootstrapArgs() != null
+ && Jalview.getInstance().getBootstrapArgs().outputToStdout())
+ {
+ return System.err;
+ }
+ else
+ {
+ return System.out;
+ }
+ }
+
+ public static void outPrintMessage(Object message, boolean newline,
+ boolean forceStdout)
+ {
+ PrintStream ps = outputStream(forceStdout);
+ if (newline)
+ {
+ ps.println(message);
+ }
+ else
+ {
+ ps.print(message);
+ }
+ }
+
+ public static void errPrint()
+ {
+ errPrint("");
+ }
+
+ public static void errPrintln()
+ {
+ errPrintln("");
+ }
+
+ public static void errPrint(Object message)
+ {
+ System.err.print(message);
+ }
+
+ public static void errPrintln(Object message)
+ {
+ System.err.println(message);
+ }
+
+ public static void debugPrintStackTrace(Throwable t)
+ {
+ if (!isDebugEnabled())
+ {
+ return;
+ }
+ // send message to stderr if output to stdout is expected
+ printStackTrace(t);
+ }
+
+ public static void printStackTrace(Throwable t)
+ {
+ // send message to stderr if output to stdout is expected
+ t.printStackTrace(System.err);
+ }
+
public final static String LOGGING_TEST_MESSAGE = "Logging to STDERR";
-}
+}
\ No newline at end of file