diff src/org/dancres/blitz/Logging.java @ 0:3dc0c5604566

Initial checkin of blitz 2.0 fcs - no installer yet.
author Dan Creswell <dan.creswell@gmail.com>
date Sat, 21 Mar 2009 11:00:06 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/dancres/blitz/Logging.java	Sat Mar 21 11:00:06 2009 +0000
@@ -0,0 +1,83 @@
+package org.dancres.blitz;
+
+import java.io.IOException;
+
+import java.util.logging.*;
+
+import net.jini.config.ConfigurationException;
+
+import org.dancres.blitz.config.ConfigurationFactory;
+
+
+/**
+   The source for logger instances.  This allows centralized control of
+   default logging level etc.
+ */
+public class Logging {
+    private static Handler theConsole = new ConsoleHandler();
+    // private static Handler theConsole;
+
+    static {
+        // try {
+        //theConsole = new FileHandler("/tmp/blitz.log");
+        theConsole.setLevel(Level.ALL);
+        //} catch (IOException anIOE) {
+        // }
+    }
+
+    public static Logger newLogger(String aName) {
+        Logger myLogger = Logger.getLogger(aName);
+
+        try {
+            /*
+              Allow user to override configuration of logging levels
+              from Blitz.config file
+             */
+            Boolean myDisableConfig = (Boolean)
+                ConfigurationFactory.getEntry("ignoreLogConfig", Boolean.class,
+                                              new Boolean(false));
+
+            if (myDisableConfig.booleanValue()) {
+                return myLogger;
+            }
+
+            Level myDefaultLevel = (Level)
+                ConfigurationFactory.getEntry("defaultLogLevel", Level.class,
+                                              Level.WARNING);
+
+
+            String myLevelName = aName + "LogLevel";
+            myLevelName = myLevelName.replaceAll("\\.", "_");
+
+            // System.out.println("Looking for: " + myLevelName);
+
+            Level myLevel = (Level)
+                ConfigurationFactory.getEntry(myLevelName, Level.class,
+                                              myDefaultLevel);
+
+            // System.out.println("Logger: " + aName + ": " + myLevel);
+            myLogger.setLevel(myLevel);
+
+            // If we've got a default logger it'll be sending to parent
+            // handlers
+            if (myLogger.getUseParentHandlers()) {
+                myLogger.setUseParentHandlers(false);
+                myLogger.addHandler(theConsole);
+            }
+
+        } catch (ConfigurationException aCE) {
+            System.err.println("Error reading logging config");
+            aCE.printStackTrace(System.err);
+        }
+
+        return myLogger;
+    }
+
+    public static Logger newLogger(String aName, Level aLevel) {
+        Logger myLogger = Logger.getLogger(aName);
+
+        myLogger.setLevel(aLevel);
+
+        return myLogger;
+    }
+}