+import org.apache.log4j.Logger;\r
+import org.apache.log4j.SimpleLayout;\r
+import org.apache.log4j.Level;\r
+import org.apache.log4j.ConsoleAppender;\r
+\r
+\r
+/**\r
+ * Stores and retrieves Jalview Application Properties\r
+ * <br><br>Current properties include:\r
+ * <br>logs.Axis.Level - one of the stringified Levels for log4j controlling the logging level for axis (used for web services)\r
+ * <br>logs.Castor.Level - one of the stringified Levels for log4j controlling the logging level for castor (used for serialization)\r
+ * <br>logs.Jalview.Level - Cache.log stringified level.\r
+ * <br>DISCOVERY_START - Boolean - controls if discovery services are queried on startup\r
+ * <br>DISCOVERY_URLS - comma separated list of Discovery Service endpoints.\r
+ * <br>SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_Y=285,SCREEN_X=371,SHOW_FULLSCREEN\r
+ * FONT_NAME,FONT_SIZE,FONT_STYLE,GAP_SYMBOL,LAST_DIRECTORY,USER_DEFINED_COLOUR\r
+ * SHOW_FULL_ID,SHOW_IDENTITY,SHOW_QUALITY,SHOW_ANNOTATIONS,SHOW_CONSERVATION,\r
+ * DEFAULT_COLOUR,DEFAULT_FILE_FORMAT,STARTUP_FILE,SHOW_STARTUP_FILE\r
+\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class Cache\r
+{\r
+ /**\r
+ * Initialises the Apache Axis logger\r
+ */\r
+ public static Logger log;\r
+\r
+ /** Jalview Properties */\r
+ public static Properties applicationProperties = new Properties();\r
+\r
+ /** Default file is ~/.jalview_properties */\r
+ static String propertiesFile;\r
+\r
+ public static void initLogger()\r
+ {\r
+ try\r
+ {\r
+ Logger laxis = Logger.getLogger("org.apache.axis");\r
+ Logger lcastor = Logger.getLogger("org.exolab.castor");\r
+ jalview.bin.Cache.log = Logger.getLogger("jalview.bin.Jalview");\r
+\r
+ laxis.setLevel(Level.toLevel(Cache.getDefault("logs.Axis.Level",\r
+ Level.INFO.toString())));\r
+ lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",\r
+ Level.INFO.toString())));\r
+ jalview.bin.Cache.log.setLevel(Level.toLevel(Cache.getDefault(\r
+ "logs.Jalview.level",\r
+ Level.INFO.toString())));\r
+ ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),\r
+ "System.err");\r
+ ap.setName("JalviewLogger");\r
+\r
+ laxis.addAppender(ap);\r
+ lcastor.addAppender(ap);\r
+ jalview.bin.Cache.log.addAppender(ap);\r
+ // Tell the user that debug is enabled\r
+ jalview.bin.Cache.log.debug("Jalview Debugging Output Follows.");\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ System.err.println("Problems initializing the log4j system\n");\r
+ }\r
+ }\r
+\r
+\r
+ /** Called when Jalview is started */\r
+ public static void loadProperties(String propsFile)\r
+ {\r
+ propertiesFile = propsFile;\r
+ if (propsFile == null)\r
+ {\r
+ propertiesFile = System.getProperty("user.home") + "/.jalview_properties";\r