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]