Author: carnold
Date: Thu Jul 17 18:54:19 2008
New Revision: 677802
URL: http://svn.apache.org/viewvc?rev=677802&view=rev
Log:
LOGCXX-304: DOMConfigurator does not set ErrorHandler
Added:
logging/log4cxx/trunk/src/test/resources/witness/fallback1
Modified:
logging/log4cxx/trunk/src/changes/changes.xml
logging/log4cxx/trunk/src/main/cpp/domconfigurator.cpp
logging/log4cxx/trunk/src/main/cpp/fileappender.cpp
logging/log4cxx/trunk/src/main/cpp/smtpappender.cpp
logging/log4cxx/trunk/src/main/cpp/writerappender.cpp
logging/log4cxx/trunk/src/main/include/log4cxx/appenderskeleton.h
logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h
logging/log4cxx/trunk/src/main/include/log4cxx/varia/fallbackerrorhandler.h
logging/log4cxx/trunk/src/test/cpp/varia/errorhandlertestcase.cpp
logging/log4cxx/trunk/src/test/resources/input/xml/fallback1.xml
Modified: logging/log4cxx/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/changes/changes.xml?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/changes/changes.xml (original)
+++ logging/log4cxx/trunk/src/changes/changes.xml Thu Jul 17 18:54:19 2008
@@ -47,9 +47,10 @@
<action issue="LOGCXX-291">Tab characters are not recognized in property
files.<action>
<action issue="LOGCXX-292">Value continuation does not properly handle CRLF in
property files.<action>
<action issue="LOGCXX-293">Escape sequences not recognized in property
files.<action>
-<action issue="LOGCXXX-298">SMTPAppender does not build properly with
autotools.</action>
+<action issue="LOGCXX-298">SMTPAppender does not build properly with
autotools.</action>
<action issue="LOGCXX-299">odbcappender.cpp does not compile with unixODBC on
linux.</action>
<action issue="LOGCXX-300">ODBCAppender connection settings broken (or just
have changed).</action>
+<action issue="LOGCXX-303">DOMConfigurator does not set ErrorHandler.</action>
<action issue="LOGCXX-304">BasicConfigurator::configure results in writer not
set warning.</action>
</release>
<release version="0.10.0" date="2008-04-03" description="First Apache release">
Modified: logging/log4cxx/trunk/src/main/cpp/domconfigurator.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/domconfigurator.cpp?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/domconfigurator.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/domconfigurator.cpp Thu Jul 17 18:54:19
2008
@@ -283,11 +283,12 @@
apr_xml_doc* doc,
AppenderMap& appenders)
{
+
ErrorHandlerPtr eh = OptionConverter::instantiateByClassName(
subst(getAttribute(utf8Decoder, element, CLASS_ATTR)),
ErrorHandler::getStaticClass(),
0);
-
+
if(eh != 0)
{
eh->setAppender(appender);
@@ -319,7 +320,10 @@
}
}
propSetter.activate(p);
-// appender->setErrorHandler(eh);
+ ObjectPtrT<AppenderSkeleton> appSkeleton(appender);
+ if (appSkeleton != 0) {
+ appSkeleton->setErrorHandler(eh);
+ }
}
}
Modified: logging/log4cxx/trunk/src/main/cpp/fileappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/fileappender.cpp?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/fileappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/fileappender.cpp Thu Jul 17 18:54:19 2008
@@ -160,7 +160,7 @@
msg.append(1, (logchar) 0x2C /* ',' */);
StringHelper::toString(fileAppend, msg);
msg.append(LOG4CXX_STR(") call failed."));
- LogLog::error(msg, e);
+ errorHandler->error(msg, e, ErrorCode::FILE_OPEN_FAILURE);
}
} else {
errors++;
Modified: logging/log4cxx/trunk/src/main/cpp/smtpappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/smtpappender.cpp?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/smtpappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/smtpappender.cpp Thu Jul 17 18:54:19 2008
@@ -473,21 +473,21 @@
{
bool activate = true;
if (layout == 0) {
- LogLog::error(LOG4CXX_STR("No layout set for appender named [") +name+
LOG4CXX_STR("]."));
+ errorHandler->error(LOG4CXX_STR("No layout set for appender named [")
+name+ LOG4CXX_STR("]."));
activate = false;
}
if(evaluator == 0) {
- LogLog::error(LOG4CXX_STR("No TriggeringEventEvaluator is set for
appender [")+
+ errorHandler->error(LOG4CXX_STR("No TriggeringEventEvaluator is set for
appender [")+
name+LOG4CXX_STR("]."));
activate = false;
}
if(smtpHost.empty()) {
- LogLog::error(LOG4CXX_STR("No smtpHost is set for appender [")+
+ errorHandler->error(LOG4CXX_STR("No smtpHost is set for appender [")+
name+LOG4CXX_STR("]."));
activate = false;
}
if(to.empty() && cc.empty() && bcc.empty()) {
- LogLog::error(LOG4CXX_STR("No recipient address is set for appender [")+
+ errorHandler->error(LOG4CXX_STR("No recipient address is set for
appender [")+
name+LOG4CXX_STR("]."));
activate = false;
}
@@ -497,7 +497,7 @@
activate &= asciiCheck(from, LOG4CXX_STR("from"));
#if !LOG4CXX_HAVE_LIBESMTP
- LogLog::error(LOG4CXX_STR("log4cxx built without SMTP support."));
+ errorHandler->error(LOG4CXX_STR("log4cxx built without SMTP support."));
activate = false;
#endif
if (activate) {
Modified: logging/log4cxx/trunk/src/main/cpp/writerappender.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/cpp/writerappender.cpp?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/cpp/writerappender.cpp (original)
+++ logging/log4cxx/trunk/src/main/cpp/writerappender.cpp Thu Jul 17 18:54:19
2008
@@ -106,8 +106,8 @@
}
if (writer == 0) {
- if (!warnedNoWriter) {
- LogLog::error(
+ if (warnedNoWriter) {
+ errorHandler->error(
LogString(LOG4CXX_STR("No output stream or file set for the
appender named [")) +
name + LOG4CXX_STR("]."));
warnedNoWriter = true;
@@ -117,6 +117,9 @@
}
if (layout == 0) {
+ errorHandler->error(
+ LogString(LOG4CXX_STR("No layout set for the appender named [")) +
+ name + LOG4CXX_STR("]."));
return false;
}
Modified: logging/log4cxx/trunk/src/main/include/log4cxx/appenderskeleton.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/appenderskeleton.h?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/appenderskeleton.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/appenderskeleton.h Thu Jul
17 18:54:19 2008
@@ -81,6 +81,7 @@
public:
DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderSkeleton)
BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(AppenderSkeleton)
LOG4CXX_CAST_ENTRY(Appender)
LOG4CXX_CAST_ENTRY(spi::OptionHandler)
END_LOG4CXX_CAST_MAP()
Modified: logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h (original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/spi/errorhandler.h Thu Jul
17 18:54:19 2008
@@ -65,6 +65,11 @@
{
public:
DECLARE_ABSTRACT_LOG4CXX_OBJECT(ErrorHandler)
+ BEGIN_LOG4CXX_CAST_MAP()
+ LOG4CXX_CAST_ENTRY(ErrorHandler)
+ LOG4CXX_CAST_ENTRY(OptionHandler)
+ END_LOG4CXX_CAST_MAP()
+
virtual ~ErrorHandler() {}
/**
Modified:
logging/log4cxx/trunk/src/main/include/log4cxx/varia/fallbackerrorhandler.h
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/main/include/log4cxx/varia/fallbackerrorhandler.h?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/main/include/log4cxx/varia/fallbackerrorhandler.h
(original)
+++ logging/log4cxx/trunk/src/main/include/log4cxx/varia/fallbackerrorhandler.h
Thu Jul 17 18:54:19 2008
@@ -49,8 +49,8 @@
public:
DECLARE_LOG4CXX_OBJECT(FallbackErrorHandler)
BEGIN_LOG4CXX_CAST_MAP()
- LOG4CXX_CAST_ENTRY(spi::OptionHandler)
- LOG4CXX_CAST_ENTRY(spi::ErrorHandler)
+ LOG4CXX_CAST_ENTRY(FallbackErrorHandler)
+ LOG4CXX_CAST_ENTRY_CHAIN(spi::ErrorHandler)
END_LOG4CXX_CAST_MAP()
FallbackErrorHandler();
@@ -109,6 +109,8 @@
*/
void setBackupAppender(const AppenderPtr& backup);
};
+ LOG4CXX_PTR_DEF(FallbackErrorHandler);
+
} // namespace varia
} // namespace log4cxx
Modified: logging/log4cxx/trunk/src/test/cpp/varia/errorhandlertestcase.cpp
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/test/cpp/varia/errorhandlertestcase.cpp?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/test/cpp/varia/errorhandlertestcase.cpp (original)
+++ logging/log4cxx/trunk/src/test/cpp/varia/errorhandlertestcase.cpp Thu Jul
17 18:54:19 2008
@@ -15,30 +15,21 @@
* limitations under the License.
*/
-#define LOG4CXX_TEST 1
-#include <log4cxx/private/log4cxx_private.h>
-
#include <log4cxx/logger.h>
#include <log4cxx/xml/domconfigurator.h>
+#include <log4cxx/fileappender.h>
+#include <log4cxx/varia/fallbackerrorhandler.h>
#include "../logunit.h"
#include "../util/transformer.h"
#include "../util/compare.h"
#include "../util/controlfilter.h"
-#include "../util/threadfilter.h"
#include "../util/linenumberfilter.h"
#include <iostream>
-#include <log4cxx/file.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
using namespace log4cxx::xml;
-#define TEST1_A_PAT "FALLBACK - test - Message [0-9]"
-#define TEST1_B_PAT "FALLBACK - root - Message [0-9]"
-#define TEST1_2_PAT \
- "^[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}
[0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\},[0-9]\\{3\\} " \
- "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message [0-9]"
-
LOGUNIT_CLASS(ErrorHandlerTestCase)
{
LOGUNIT_TEST_SUITE(ErrorHandlerTestCase);
@@ -48,9 +39,6 @@
LoggerPtr root;
LoggerPtr logger;
- static const File TEMP;
- static const File FILTERED;
-
public:
void setUp()
@@ -64,74 +52,67 @@
logger->getLoggerRepository()->resetConfiguration();
}
+
void test1()
{
DOMConfigurator::configure("input/xml/fallback1.xml");
+ FileAppenderPtr
primary(root->getAppender(LOG4CXX_STR("PRIMARY")));
+ log4cxx::varia::FallbackErrorHandlerPtr
eh(primary->getErrorHandler());
+ LOGUNIT_ASSERT(eh != 0);
+
common();
+ std::string TEST1_PAT =
+ "FALLBACK - (root|test) - Message {0-9}";
+
ControlFilter cf;
- cf << TEST1_A_PAT << TEST1_B_PAT << TEST1_2_PAT;
+ cf << TEST1_PAT;
- ThreadFilter threadFilter;
LineNumberFilter lineNumberFilter;
std::vector<Filter *> filters;
filters.push_back(&cf);
- filters.push_back(&threadFilter);
filters.push_back(&lineNumberFilter);
- common();
-
try
{
- Transformer::transform(TEMP, FILTERED, filters);
+ Transformer::transform("output/temp",
"output/filtered", filters);
}
catch(UnexpectedFormatException& e)
{
- std::cout << "UnexpectedFormatException :" << e.what() <<
std::endl;
+ std::cout << "UnexpectedFormatException :" << e.what() <<
std::endl;
throw;
}
- const File witness("witness/fallback");
- LOGUNIT_ASSERT(Compare::compare(FILTERED, witness));
+
+ LOGUNIT_ASSERT(Compare::compare("output/filtered",
"witness/fallback1"));
}
void common()
{
int i = -1;
+
+ LOG4CXX_DEBUG(logger, "Message " << ++i);
+ LOG4CXX_DEBUG(root, "Message " << i);
- std::ostringstream os;
- os << "Message " << ++ i;
- LOG4CXX_DEBUG(logger, os.str())
- LOG4CXX_DEBUG(root, os.str())
-
- os.str("");
- os << "Message " << ++i;
- LOG4CXX_INFO(logger, os.str())
- LOG4CXX_INFO(root, os.str())
-
- os.str("");
- os << "Message " << ++i;
- LOG4CXX_WARN(logger, os.str())
- LOG4CXX_WARN(root, os.str())
-
- os.str("");
- os << "Message " << ++i;
- LOG4CXX_ERROR(logger, os.str())
- LOG4CXX_ERROR(root, os.str())
-
- os.str("");
- os << "Message " << ++i;
- LOG4CXX_FATAL(logger, os.str())
- LOG4CXX_FATAL(root, os.str())
- }
-};
+ LOG4CXX_INFO(logger, "Message " << ++i);
+ LOG4CXX_INFO(root, "Message " << i);
+
+ LOG4CXX_WARN(logger, "Message " << ++i);
+ LOG4CXX_WARN(root, "Message " << i);
-//TODO: Not sure this test ever worked. 0.9.7 didn't call common
-// had nothing that attempted to dispatch any log events
+ LOG4CXX_ERROR(logger, "Message " << ++i);
+ LOG4CXX_ERROR(root, "Message " << i);
-//LOGUNIT_TEST_SUITE_REGISTRATION(ErrorHandlerTestCase);
+ LOG4CXX_FATAL(logger, "Message " << ++i);
+ LOG4CXX_FATAL(root, "Message " << i);
-const File ErrorHandlerTestCase::TEMP("output/temp");
-const File ErrorHandlerTestCase::FILTERED("output/filtered");
+ LOG4CXX_DEBUG(logger, "Message " << ++i);
+ LOG4CXX_DEBUG(root, "Message " << i);
+
+ LOG4CXX_ERROR(logger, "Message " << ++i);
+ LOG4CXX_ERROR(root, "Message " << i);
+ }
+};
+LOGUNIT_TEST_SUITE_REGISTRATION(ErrorHandlerTestCase)
Modified: logging/log4cxx/trunk/src/test/resources/input/xml/fallback1.xml
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/test/resources/input/xml/fallback1.xml?rev=677802&r1=677801&r2=677802&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/test/resources/input/xml/fallback1.xml (original)
+++ logging/log4cxx/trunk/src/test/resources/input/xml/fallback1.xml Thu Jul 17
18:54:19 2008
@@ -27,7 +27,7 @@
<appender-ref ref="FALLBACK" />
</errorHandler>
- <param name="File" value="/xyz/x.log" />
+ <param name="File" value="/xyz/:x.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
Added: logging/log4cxx/trunk/src/test/resources/witness/fallback1
URL:
http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/test/resources/witness/fallback1?rev=677802&view=auto
==============================================================================
--- logging/log4cxx/trunk/src/test/resources/witness/fallback1 (added)
+++ logging/log4cxx/trunk/src/test/resources/witness/fallback1 Thu Jul 17
18:54:19 2008
@@ -0,0 +1,14 @@
+FALLBACK - test - Message 0
+FALLBACK - root - Message 0
+FALLBACK - test - Message 1
+FALLBACK - root - Message 1
+FALLBACK - test - Message 2
+FALLBACK - root - Message 2
+FALLBACK - test - Message 3
+FALLBACK - root - Message 3
+FALLBACK - test - Message 4
+FALLBACK - root - Message 4
+FALLBACK - test - Message 5
+FALLBACK - root - Message 5
+FALLBACK - test - Message 6
+FALLBACK - root - Message 6