carnold     2005/07/22 12:00:50

  Modified:    src/java/org/apache/log4j Tag: v1_2-branch Level.java
                        Logger.java
               tests/src/java/org/apache/log4j Tag: v1_2-branch
                        LevelTest.java LoggerTestCase.java
  Log:
  Bug 35711: Add TRACE level to 1.2 api
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.8.2.3   +15 -1     logging-log4j/src/java/org/apache/log4j/Level.java
  
  Index: Level.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/Level.java,v
  retrieving revision 1.8.2.2
  retrieving revision 1.8.2.3
  diff -u -r1.8.2.2 -r1.8.2.3
  --- Level.java        18 Jul 2005 17:03:39 -0000      1.8.2.2
  +++ Level.java        22 Jul 2005 19:00:45 -0000      1.8.2.3
  @@ -38,6 +38,11 @@
    */
   public class Level extends Priority implements Serializable {
   
  +   /**
  +    * TRACE level integer value.
  +    * @since 1.2.12
  +    */
  +  public static final int TRACE_INT = 5000;
   
     /**
        The <code>OFF</code> has the highest possible rank and is
  @@ -73,6 +78,14 @@
     final static public Level DEBUG = new Level(DEBUG_INT, "DEBUG", 7);
   
     /**
  +    * The <code>TRACE</code> Level designates finer-grained
  +    * informational events than the <code>DEBUG</code level.
  +   *  @since 1.2.12
  +    */
  +  public static final Level TRACE = new Level(TRACE_INT, "TRACE", 7);
  +
  +
  +  /**
        The <code>ALL</code> has the lowest possible rank and is intended to
        turn on all logging.  */
     final static public Level ALL = new Level(ALL_INT, "ALL", 7);
  @@ -127,6 +140,7 @@
       case ERROR_INT: return Level.ERROR;
       case FATAL_INT: return Level.FATAL;
       case OFF_INT: return OFF;
  +    case TRACE_INT: return Level.TRACE;
       default: return defaultLevel;
       }
     }
  @@ -146,12 +160,12 @@
   
       if(s.equals("ALL")) return Level.ALL; 
       if(s.equals("DEBUG")) return Level.DEBUG; 
  -    //if(s.equals("FINE")) return Level.FINE; 
       if(s.equals("INFO"))  return Level.INFO;
       if(s.equals("WARN"))  return Level.WARN;  
       if(s.equals("ERROR")) return Level.ERROR;
       if(s.equals("FATAL")) return Level.FATAL;
       if(s.equals("OFF")) return Level.OFF;
  +    if(s.equals("TRACE")) return Level.TRACE;
       return defaultLevel;
     }
   
  
  
  
  1.16.2.5  +55 -0     logging-log4j/src/java/org/apache/log4j/Logger.java
  
  Index: Logger.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/Logger.java,v
  retrieving revision 1.16.2.4
  retrieving revision 1.16.2.5
  diff -u -r1.16.2.4 -r1.16.2.5
  --- Logger.java       24 May 2005 05:06:17 -0000      1.16.2.4
  +++ Logger.java       22 Jul 2005 19:00:45 -0000      1.16.2.5
  @@ -17,6 +17,7 @@
   package org.apache.log4j;
   
   import org.apache.log4j.spi.LoggerFactory;
  +import org.apache.log4j.Level;
   
   
   /**
  @@ -154,4 +155,58 @@
       return LogManager.getLogger(name, factory);
     }
   
  +    /**
  +     * Log a message object with the [EMAIL PROTECTED] 
org.apache.log4j.Level#TRACE TRACE} level.
  +     *
  +     * @param message the message object to log.
  +     * @see #debug(Object) for an explanation of the logic applied.
  +     * @since 1.2.12
  +     */
  +    public void trace(Object message) {
  +      if (repository.isDisabled(Level.TRACE_INT)) {
  +        return;
  +      }
  +
  +      if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
  +        forcedLog(FQCN, Level.TRACE, message, null);
  +      }
  +    }
  +
  +    /**
  +     * Log a message object with the <code>TRACE</code> level including the
  +     * stack trace of the [EMAIL PROTECTED] Throwable}<code>t</code> passed 
as parameter.
  +     *
  +     * <p>
  +     * See [EMAIL PROTECTED] #debug(Object)} form for more detailed 
information.
  +     * </p>
  +     *
  +     * @param message the message object to log.
  +     * @param t the exception to log, including its stack trace.
  +     * @since 1.2.12
  +     */
  +    public void trace(Object message, Throwable t) {
  +      if (repository.isDisabled(Level.TRACE_INT)) {
  +        return;
  +      }
  +
  +      if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
  +        forcedLog(FQCN, Level.TRACE, message, t);
  +      }
  +    }
  +
  +    /**
  +     * Check whether this category is enabled for the TRACE  Level.
  +     * @since 1.2.12
  +     *
  +     * @return boolean - <code>true</code> if this category is enabled for 
level
  +     *         TRACE, <code>false</code> otherwise.
  +     */
  +    public boolean isTraceEnabled() {
  +        if (repository.isDisabled(Level.TRACE_INT)) {
  +            return false;
  +          }
  +
  +          return Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel());
  +    }
  +
   }
  
  
  
  No                   revision
  No                   revision
  1.1.2.2   +22 -1     
logging-log4j/tests/src/java/org/apache/log4j/LevelTest.java
  
  Index: LevelTest.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/log4j/LevelTest.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- LevelTest.java    18 Jul 2005 17:05:57 -0000      1.1.2.1
  +++ LevelTest.java    22 Jul 2005 19:00:46 -0000      1.1.2.2
  @@ -25,7 +25,7 @@
    * Tests of Level.
    *
    * @author Curt Arnold
  - * @since 1.3
  + * @since 1.2.12
    */
   public class LevelTest extends TestCase {
     /**
  @@ -89,4 +89,25 @@
           Level.INFO.level, Level.INFO.levelStr, Level.INFO.syslogEquivalent);
       }
     }
  +
  +  public void testTraceInt() {
  +      assertEquals(5000, Level.TRACE_INT);
  +  }
  +
  +  public void testTrace() {
  +      assertEquals("TRACE", Level.TRACE.toString());
  +      assertEquals(5000, Level.TRACE.toInt());
  +      assertEquals(7, Level.TRACE.getSyslogEquivalent());
  +  }
  +
  +  public void testIntToTrace() {
  +      Level trace = Level.toLevel(5000);
  +      assertEquals("TRACE", trace.toString());
  +  }
  +
  +  public void testStringToTrace() {
  +        Level trace = Level.toLevel("TRACE");
  +        assertEquals("TRACE", trace.toString());
  +  }
  +
   }
  
  
  
  1.4.2.4   +72 -26    
logging-log4j/tests/src/java/org/apache/log4j/Attic/LoggerTestCase.java
  
  Index: LoggerTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/log4j/Attic/LoggerTestCase.java,v
  retrieving revision 1.4.2.3
  retrieving revision 1.4.2.4
  diff -u -r1.4.2.3 -r1.4.2.4
  --- LoggerTestCase.java       24 May 2005 05:06:24 -0000      1.4.2.3
  +++ LoggerTestCase.java       22 Jul 2005 19:00:46 -0000      1.4.2.4
  @@ -16,15 +16,15 @@
   
   package org.apache.log4j;
   
  -import org.apache.log4j.*;
  -import org.apache.log4j.spi.*;
  -
   import junit.framework.TestCase;
  -import junit.framework.TestSuite;
  -import junit.framework.Test;
  +import org.apache.log4j.spi.LoggingEvent;
  +import org.apache.log4j.spi.RootLogger;
  +import org.apache.log4j.spi.LoggerRepository;
  +
   import java.util.Enumeration;
  -import java.util.ResourceBundle;
   import java.util.Locale;
  +import java.util.ResourceBundle;
  +import java.util.Vector;
   
   /**
      Used for internal unit testing the Logger class.
  @@ -326,30 +326,76 @@
   
       Logger a1 = h.getLogger("a");
       assertSame(a0, a1);
  +  }
   
  -    
  +  /**
  +   * Tests logger.trace(Object).
  +   * @since 1.2.12
  +   */
  +  public void testTrace() {
  +      VectorAppender appender = new VectorAppender();
  +      appender.activateOptions();
  +      Logger root = Logger.getRootLogger();
  +      root.addAppender(appender);
  +      root.setLevel(Level.INFO);
  +
  +      Logger tracer = Logger.getLogger("com.example.Tracer");
  +      tracer.setLevel(Level.TRACE);
  +
  +      tracer.trace("Message 1");
  +      root.trace("Discarded Message");
  +      root.trace("Discarded Message");
  +
  +      Vector msgs = appender.getVector();
  +      assertEquals(1, msgs.size());
  +      LoggingEvent event = (LoggingEvent) msgs.get(0);
  +      assertEquals(Level.TRACE, event.getLevel());
  +      assertEquals("Message 1", event.getMessage());
  +  }
  +
  +    /**
  +     * Tests logger.trace(Object, Exception).
  +     * @since 1.2.12
  +     */
  +    public void testTraceWithException() {
  +        VectorAppender appender = new VectorAppender();
  +        appender.activateOptions();
  +        Logger root = Logger.getRootLogger();
  +        root.addAppender(appender);
  +        root.setLevel(Level.INFO);
  +
  +        Logger tracer = Logger.getLogger("com.example.Tracer");
  +        tracer.setLevel(Level.TRACE);
  +        NullPointerException ex = new NullPointerException();
  +
  +        tracer.trace("Message 1", ex);
  +        root.trace("Discarded Message", ex);
  +        root.trace("Discarded Message", ex);
  +
  +        Vector msgs = appender.getVector();
  +        assertEquals(1, msgs.size());
  +        LoggingEvent event = (LoggingEvent) msgs.get(0);
  +        assertEquals(Level.TRACE, event.getLevel());
  +        assertEquals("Message 1", event.getMessage());
  +    }
   
  -    
  -  }
  +    /**
  +     * Tests isTraceEnabled.
  +     * @since 1.2.12
  +     */
  +    public void testIsTraceEnabled() {
  +        VectorAppender appender = new VectorAppender();
  +        appender.activateOptions();
  +        Logger root = Logger.getRootLogger();
  +        root.addAppender(appender);
  +        root.setLevel(Level.INFO);
   
  -  public
  -  static
  -  Test suite() {
  -    TestSuite suite = new TestSuite();
  -    suite.addTest(new LoggerTestCase("testAppender1"));
  -    suite.addTest(new LoggerTestCase("testAppender2"));
  -    suite.addTest(new LoggerTestCase("testAdditivity1"));        
  -    suite.addTest(new LoggerTestCase("testAdditivity2"));        
  -    suite.addTest(new LoggerTestCase("testAdditivity3"));        
  -    suite.addTest(new LoggerTestCase("testDisable1"));        
  -    suite.addTest(new LoggerTestCase("testRB1"));        
  -    suite.addTest(new LoggerTestCase("testRB2"));        
  -    suite.addTest(new LoggerTestCase("testRB3"));        
  -    suite.addTest(new LoggerTestCase("testExists"));        
  -    suite.addTest(new LoggerTestCase("testHierarchy1"));        
  -    return suite;
  -  }
  +        Logger tracer = Logger.getLogger("com.example.Tracer");
  +        tracer.setLevel(Level.TRACE);
   
  +        assertTrue(tracer.isTraceEnabled());
  +        assertFalse(root.isTraceEnabled());
  +    }
   
     static private class CountingAppender extends AppenderSkeleton {
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to