KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > csdl > stackmvc > util > Debug


1 //Portions Copyright 2001, Philip Johnson. See LicenseInfo.html for details.
2
package csdl.stackmvc.util;
3
4 import java.util.Date JavaDoc;
5 import java.text.SimpleDateFormat JavaDoc;
6
7 /**
8  * Simple Debug class that allows command line enabling of debugging by
9  * setting -D properties. For example,
10  * <pre>
11  * java -DDebug.StackMVC ...
12  * </pre>
13  * will enable the printing of all debug messages with the StackMVC key.
14  * To enable all debugging without listing every class, use:
15  * <pre>
16  * java -DDebug.all ...
17  * </pre>
18  * <p>
19  * Note that this class is obsolete in Java 1.4. There you should use the logging utility.
20  * @author Original code by Ian Darwin (Java Cookbook).
21  * @author Philip Johnson (timestamp and other enhancements.)
22  * @version $Id: Debug.java,v 1.2 2003/01/25 01:49:02 jagustin Exp $
23  */

24 public class Debug {
25   /** Format for timestamp. */
26   private static SimpleDateFormat JavaDoc shortTimeFormat =
27     new SimpleDateFormat JavaDoc("MM/dd HH:mm:ss");
28
29   /** Enable all log messages. */
30   public static final String JavaDoc ALL = "Debug.all";
31
32   /** Enable log messages for a specific class. */
33   public static final String JavaDoc STACKMVC = "Debug.StackMVC";
34
35
36   /**
37    * Checks to see if the given category (of debugging) is enabled.
38    * Enabled by settings. E.g: -DDebug.Stack to debug Stack operations.
39    * @param category The debugging category.
40    * @return Whether or not this category is enabled.
41    */

42   public static boolean isEnabled(String JavaDoc category) {
43     return (System.getProperty(category) != null || System.getProperty(ALL) != null);
44   }
45
46   /**
47    * Println the message if that message's category
48    * is enabled for debugging.
49    * @param category The debugging category.
50    * @param msg The message to be printed if this category is enabled.
51    */

52   public static void println(String JavaDoc category, String JavaDoc msg) {
53     if (isEnabled(category)) {
54       System.out.println(shortTimeFormat.format(new Date JavaDoc()) + " " + msg);
55     }
56   }
57
58   /**
59    * Println the message if that message's category
60    * is enabled for debugging.
61    * This is used for non-String objects.
62    * @param category The debugging category.
63    * @param stuff The object whose toString() method will be called to print.
64    */

65   public static void println(String JavaDoc category, Object JavaDoc stuff) {
66     if (isEnabled(category)) {
67       println(category,stuff.toString());
68     }
69   }
70 }
71
Popular Tags