This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Propogate level to sub-trees; parse file names.


The branch, master has been updated
       via  b46299979f8206a6b2a34e16cb2fa9ddd9eff862 (commit)
      from  15939cb4dad29f01496f8f215baa716e93011199 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit b46299979f8206a6b2a34e16cb2fa9ddd9eff862
Author: Andrew Cagney <cagney@redhat.com>
Date:   Mon Dec 10 12:45:52 2007 -0500

    Propogate level to sub-trees; parse file names.
    
    frysk-sys/frysk/rsl/ChangeLog
    2007-12-10  Andrew Cagney  <cagney@redhat.com>
    
           * Tree.java (Tree(String,String,Level)): Added Level parameter.
           (get(String,int)): Propogate this.level to new children.
           * Log.java (postfix()): Call flush.
           * LogOption.java (level(String)): Rename parse(String).
           (level(Tree,String)): Rename parsed(Tree,String).
           (file(String,String)): New.
           * TestLog.java: Update.
           (testRootLevelFINE()): New.
           (testSubLevelFINE()): New.

-----------------------------------------------------------------------

Summary of changes:
 frysk-sys/frysk/rsl/ChangeLog      |   10 +++++++++
 frysk-sys/frysk/rsl/Log.java       |    2 +
 frysk-sys/frysk/rsl/LogOption.java |   38 ++++++++++++++++++++++++++++++++---
 frysk-sys/frysk/rsl/TestLog.java   |   21 ++++++++++++++++---
 frysk-sys/frysk/rsl/Tree.java      |    9 ++++---
 5 files changed, 68 insertions(+), 12 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog
index b6c537d..68c7dae 100644
--- a/frysk-sys/frysk/rsl/ChangeLog
+++ b/frysk-sys/frysk/rsl/ChangeLog
@@ -1,5 +1,15 @@
 2007-12-10  Andrew Cagney  <cagney@redhat.com>
 
+	* Tree.java (Tree(String,String,Level)): Added Level parameter.
+	(get(String,int)): Propogate this.level to new children.
+	* Log.java (postfix()): Call flush.
+	* LogOption.java (level(String)): Rename parse(String).
+	(level(Tree,String)): Rename parsed(Tree,String).
+	(file(String,String)): New.
+	* TestLog.java: Update.
+	(testRootLevelFINE()): New.
+	(testSubLevelFINE()): New.
+	
 	* Tree.java: Rename Branch.java.
 	* LogOption.java: Update.
 	* TestLog.java: Update.
diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java
index 2f96d4c..15b33e6 100644
--- a/frysk-sys/frysk/rsl/Log.java
+++ b/frysk-sys/frysk/rsl/Log.java
@@ -63,6 +63,7 @@ public final class Log {
 	return ("{" + super.toString()
 		+ ",path=" + path
 		+ ",level=" + level
+		+ ",logging=" + logging
 		+ "}");
     }
 
@@ -156,6 +157,7 @@ public final class Log {
 
     private void postfix() {
 	out.println();
+	out.flush();
     }
 
     /**
diff --git a/frysk-sys/frysk/rsl/LogOption.java b/frysk-sys/frysk/rsl/LogOption.java
index 5d9a7aa..1689e01 100644
--- a/frysk-sys/frysk/rsl/LogOption.java
+++ b/frysk-sys/frysk/rsl/LogOption.java
@@ -41,6 +41,9 @@ package frysk.rsl;
 
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
+import java.io.File;
+import java.io.PrintStream;
+import java.io.FileOutputStream;
 
 public class LogOption extends Option {
 
@@ -52,12 +55,18 @@ public class LogOption extends Option {
 	      "<LOG=LEVEL,...>");
     }
     public void parsed (String arg0) throws OptionException {
-	parse(arg0);
+	level(arg0);
     }
-    public static void parse(String arg0) throws OptionException {
-	parsed(Tree.root, arg0);
+    /**
+     * Parse ARG0 setting log levels.
+     */
+    public static void level(String arg0) throws OptionException {
+	level(Tree.root, arg0);
     }
-    static void parsed (Tree root, String arg0) throws OptionException {
+    /**
+     * Parse ARG0 setting log levels.
+     */
+    static void level(Tree root, String arg0) throws OptionException {
 	String[] logs = arg0.split(",");
 	for (int i = 0; i < logs.length; i++) {
 	    String[] logLevel = logs[i].split("=");
@@ -86,4 +95,25 @@ public class LogOption extends Option {
 	    logger.set(level);
 	}
     }
+
+    /**
+     * Parse ARG0 setting log levels, and switching to the specified
+     * log file.
+     */
+    public static void file(File file) {
+	// try creating the directory for the log file
+	File dir = file.getParentFile();
+	if (!dir.exists() && !dir.mkdirs()) {
+	    System.out.println("logger warning: can not create log directory: "
+			       + dir);
+	    return;
+	}
+	try {
+	    Log.set(new PrintStream(new FileOutputStream(file)));
+	} catch (java.io.FileNotFoundException e) {
+	    System.out.println("logger warning: can not create log file: "
+			       + file);
+	    return;
+	}
+    }
 }
diff --git a/frysk-sys/frysk/rsl/TestLog.java b/frysk-sys/frysk/rsl/TestLog.java
index 92302df..8ae76ac 100644
--- a/frysk-sys/frysk/rsl/TestLog.java
+++ b/frysk-sys/frysk/rsl/TestLog.java
@@ -47,7 +47,7 @@ import java.util.LinkedList;
  */
 
 public class TestLog extends TestCase {
-    private static final Log log = Log.fine(TestCase.class);
+    private static final Log log = Log.fine(TestLog.class);
 
     private Tree root;
     public void setUp() {
@@ -127,6 +127,19 @@ public class TestLog extends TestCase {
 	checkLevel("the.lower.right.hand", Level.NONE);
 	checkLevel("the.lower.right.hand.side", Level.NONE);
     }
+    public void testRootLevelFINE() {
+	// Set the root level before any children are created; should
+	// propogate down.
+	set("", Level.FINE);
+	checkLevel("the", Level.FINE);
+    }
+    public void testSubLevelFINE() {
+	// Set the sub-level before any children.
+	set("this", Level.FINE);
+	checkLevel("this.level", Level.FINE);
+	checkLevel("this", Level.FINE);
+	checkLevel("", Level.NONE);
+    }
     
     private void checkComplete(String incomplete, int expectedCursor,
 			       String[] expectedCandidates) {
@@ -177,14 +190,14 @@ public class TestLog extends TestCase {
 	throws gnu.classpath.tools.getopt.OptionException
     {
 	checkLevel("", Level.NONE);
-	LogOption.parsed(root, "FINE");
+	LogOption.level(root, "FINE");
 	checkLevel("", Level.FINE);
     }
     public void testOptionSubFINE()
 	throws gnu.classpath.tools.getopt.OptionException
     {
 	checkLevel("the", Level.NONE);
-	LogOption.parsed(root, "the=FINE");
+	LogOption.level(root, "the=FINE");
 	checkLevel("the", Level.FINE);
     }
     public void testOptionCommaOption()
@@ -192,7 +205,7 @@ public class TestLog extends TestCase {
     {
 	checkLevel("lhs", Level.NONE);
 	checkLevel("rhs", Level.NONE);
-	LogOption.parsed(root, "lhs=FINE,rhs=FINEST");
+	LogOption.level(root, "lhs=FINE,rhs=FINEST");
 	checkLevel("lhs", Level.FINE);
 	checkLevel("rhs", Level.FINEST);
 
diff --git a/frysk-sys/frysk/rsl/Tree.java b/frysk-sys/frysk/rsl/Tree.java
index 5726d18..517b88c 100644
--- a/frysk-sys/frysk/rsl/Tree.java
+++ b/frysk-sys/frysk/rsl/Tree.java
@@ -50,13 +50,14 @@ public final class Tree {
 
     private final TreeMap children = new TreeMap();
     private final Log[] loggers = new Log[Level.MAX.intValue()];
-    private Level level = Level.NONE;
+    private Level level;
     private final String path;
     private final String name;
 
-    private Tree(String path, String name) {
+    private Tree(String path, String name, Level level) {
 	this.path = path;
 	this.name = name;
+	this.level = level;
     }
 
     public String toString() {
@@ -70,7 +71,7 @@ public final class Tree {
      * Package private for testing.
      */
     Tree() {
-	this("<root>", "<root>");
+	this("<root>", "<root>", Level.NONE);
     }
     /**
      * The root note; also serves as a single global lock.
@@ -113,7 +114,7 @@ public final class Tree {
 	    String name = path.substring(pos + 1, dot);
 	    Tree child = (Tree)children.get(name);
 	    if (child == null) {
-		child = new Tree(path.substring(0, dot), name);
+		child = new Tree(path.substring(0, dot), name, level);
 		children.put(name, child);
 	    }
 	    return child.get(path, dot);


hooks/post-receive
--
frysk system monitor/debugger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]