ensure dbrefs are added to dataset sequence.
[jalview.git] / src / jalview / bin / Cache.java
index 72fec6c..bbb4909 100755 (executable)
@@ -42,7 +42,20 @@ import org.apache.log4j.*;
 public class Cache
 {
   /**
-   * Initialises the Apache Axis logger
+   * property giving log4j level for CASTOR loggers
+   */
+  public static final String CASTORLOGLEVEL = "logs.Castor.level";
+  /**
+   * property giving log4j level for AXIS loggers
+   */
+  public static final String AXISLOGLEVEL = "logs.Castor.level";
+  /**
+   * property giving log4j level for Jalview Log
+   */
+  public static final String JALVIEWLOGLEVEL = "logs.Jalview.level";
+
+  /**
+   * Initialises the Jalview Application Log
    */
   public static Logger log;
 
@@ -56,6 +69,10 @@ public class Cache
   {
     try
     {
+      ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),
+      "System.err");
+      ap.setName("JalviewLogger");
+      org.apache.log4j.Logger.getRootLogger().addAppender(ap); // catch all for log output
       Logger laxis = Logger.getLogger("org.apache.axis");
       Logger lcastor = Logger.getLogger("org.exolab.castor");
       jalview.bin.Cache.log = Logger.getLogger("jalview.bin.Jalview");
@@ -64,22 +81,22 @@ public class Cache
           Level.INFO.toString())));
       lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
           Level.INFO.toString())));
+      lcastor = Logger.getLogger("org.exolab.castor.xml");
+      lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
+              Level.INFO.toString())));
       jalview.bin.Cache.log.setLevel(Level.toLevel(Cache.getDefault(
           "logs.Jalview.level",
           Level.INFO.toString())));
-      ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),
-                                               "System.err");
-      ap.setName("JalviewLogger");
-
-      laxis.addAppender(ap);
-      lcastor.addAppender(ap);
-      jalview.bin.Cache.log.addAppender(ap);
+      //laxis.addAppender(ap);
+      //lcastor.addAppender(ap);
+      //jalview.bin.Cache.log.addAppender(ap);
       // Tell the user that debug is enabled
       jalview.bin.Cache.log.debug("Jalview Debugging Output Follows.");
     }
     catch (Exception ex)
     {
       System.err.println("Problems initializing the log4j system\n");
+      ex.printStackTrace(System.err);
     }
   }
 
@@ -334,5 +351,42 @@ public class Cache
     }
     return (vamsasJarsArePresent > 0);
   }
+  /**
+   * internal vamsas class discovery state
+   */
+  private static int groovyJarsArePresent = -1;
+  /**
+   * Searches for vamsas client classes on class path.
+   * @return true if vamsas client is present on classpath
+   */
+  public static boolean groovyJarsPresent()
+  {
+    if (groovyJarsArePresent == -1)
+    {
+      try
+      {
+        if (Cache.class.getClassLoader().loadClass(
+            "groovy.lang.GroovyObject") != null)
+        {
+          jalview.bin.Cache.log.debug(
+              "Found Groovy (groovy.lang.GroovyObject can be loaded)");
+          groovyJarsArePresent = 1;
+          Logger lgclient = Logger.getLogger("groovy");
+          lgclient.setLevel(Level.toLevel(Cache.getDefault("logs.Groovy.Level",
+              Level.INFO.toString())));
+
+          lgclient.addAppender(log.getAppender("JalviewLogger"));
+          // Tell the user that debug is enabled
+          lgclient.debug("Jalview Groovy Client Debugging Output Follows.");
+        }
+      }
+      catch (Exception e)
+      {
+        groovyJarsArePresent = 0;
+        jalview.bin.Cache.log.debug("Groovy Classes are not present");
+      }
+    }
+    return (groovyJarsArePresent > 0);
+  }
 
 }