Author: carnold
Date: Mon Nov 19 09:48:26 2007
New Revision: 596382
URL: http://svn.apache.org/viewvc?rev=596382&view=rev
Log:
LOGCXX-208: isTraceEnabled implementation missing
Modified:
logging/log4cxx/trunk/src/main/cpp/logger.cpp
logging/log4cxx/trunk/src/test/cpp/loggertestcase.cpp
Modified: logging/log4cxx/trunk/src/main/cpp/logger.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/logger.cpp?rev=596382&r1=596381&r2=596382&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/logger.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/logger.cpp Mon Nov 19 09:48:26 2007
@@ -273,6 +273,16 @@
}
}
+bool Logger::isTraceEnabled() const
+{
+ if(repository == 0 || repository->isDisabled(Level::TRACE_INT))
+ {
+ return false;
+ }
+
+ return Level::getTrace()->isGreaterOrEqual(getEffectiveLevel());
+}
+
bool Logger::isDebugEnabled() const
{
if(repository == 0 || repository->isDisabled(Level::DEBUG_INT))
Modified: logging/log4cxx/trunk/src/test/cpp/loggertestcase.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/test/cpp/loggertestcase.cpp?rev=596382&r1=596381&r2=596382&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/test/cpp/loggertestcase.cpp (original)
+++ logging/log4cxx/trunk/src/test/cpp/loggertestcase.cpp Mon Nov 19 09:48:26
2007
@@ -31,6 +31,7 @@
#include "insertwide.h"
#include "testchar.h"
#include <log4cxx/helpers/locale.h>
+#include "vectorappender.h"
using namespace log4cxx;
using namespace log4cxx::spi;
@@ -71,6 +72,8 @@
// CPPUNIT_TEST(testRB3);
CPPUNIT_TEST(testExists);
CPPUNIT_TEST(testHierarchy1);
+ CPPUNIT_TEST(testTrace);
+ CPPUNIT_TEST(testIsTraceEnabled);
CPPUNIT_TEST_SUITE_END();
public:
@@ -410,6 +413,47 @@
logger->info("Hello, World.");
}
+
+ /**
+ * Tests logger.trace(Object).
+ * @since 1.2.12
+ */
+ void testTrace() {
+ VectorAppenderPtr appender = new VectorAppender();
+ LoggerPtr root = Logger::getRootLogger();
+ root->addAppender(appender);
+ root->setLevel(Level::getInfo());
+
+ LoggerPtr tracer = Logger::getLogger("com.example.Tracer");
+ tracer->setLevel(Level::getTrace());
+
+ LOG4CXX_TRACE(tracer, "Message 1");
+ LOG4CXX_TRACE(root, "Discarded Message");
+ LOG4CXX_TRACE(root, "Discarded Message");
+
+ std::vector<LoggingEventPtr> msgs(appender->vector);
+ CPPUNIT_ASSERT_EQUAL((size_t) 1, msgs.size());
+ LoggingEventPtr event = msgs[0];
+ CPPUNIT_ASSERT_EQUAL((int) Level::TRACE_INT, event->getLevel()->toInt());
+ CPPUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("Message 1")),
event->getMessage());
+ }
+
+ /**
+ * Tests isTraceEnabled.
+ * @since 1.2.12
+ */
+ void testIsTraceEnabled() {
+ VectorAppenderPtr appender = new VectorAppender();
+ LoggerPtr root = Logger::getRootLogger();
+ root->addAppender(appender);
+ root->setLevel(Level::getInfo());
+
+ LoggerPtr tracer = Logger::getLogger("com.example.Tracer");
+ tracer->setLevel(Level::getTrace());
+
+ CPPUNIT_ASSERT_EQUAL(true, tracer->isTraceEnabled());
+ CPPUNIT_ASSERT_EQUAL(false, root->isTraceEnabled());
+ }
protected:
static LogString MSG;