summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icespider/core/core.cpp7
-rw-r--r--icespider/unittests/testApp.cpp2
2 files changed, 6 insertions, 3 deletions
diff --git a/icespider/core/core.cpp b/icespider/core/core.cpp
index d63464e..057faa6 100644
--- a/icespider/core/core.cpp
+++ b/icespider/core/core.cpp
@@ -4,6 +4,7 @@
#include <Ice/ObjectAdapter.h>
#include <boost/filesystem/convenience.hpp>
#include <factory.impl.h>
+#include <compileTimeFormatter.h>
INSTANTIATEFACTORY(IceSpider::Plugin, Ice::CommunicatorPtr, Ice::PropertiesPtr);
INSTANTIATEPLUGINOF(IceSpider::ErrorHandler);
@@ -105,15 +106,17 @@ namespace IceSpider {
defaultErrorReport(request, exception);
}
+ AdHocFormatter(LogExp, "Exception type: %?\nDetail: %?\n");
void
Core::defaultErrorReport(IHttpRequest * request, const std::exception & exception) const
{
char * buf = __cxxabiv1::__cxa_demangle(typeid(exception).name(), NULL, NULL, NULL);
request->setHeader("Content-Type", "text/plain");
request->response(500, buf);
- free(buf);
- request->getOutputStream() << exception.what();
+ LogExp::write(request->getOutputStream(), buf, exception.what());
request->dump(std::cerr);
+ LogExp::write(std::cerr, buf, exception.what());
+ free(buf);
}
Ice::ObjectPrx
diff --git a/icespider/unittests/testApp.cpp b/icespider/unittests/testApp.cpp
index 5832595..9714d33 100644
--- a/icespider/unittests/testApp.cpp
+++ b/icespider/unittests/testApp.cpp
@@ -527,7 +527,7 @@ BOOST_AUTO_TEST_CASE( testErrorHandler_Unhandled )
BOOST_REQUIRE_EQUAL(h["Content-Type"], "text/plain");
auto & o = requestDeleteItem.output;
auto b = o.str().substr(o.tellg());
- BOOST_REQUIRE_EQUAL(b, "test error");
+ BOOST_REQUIRE_EQUAL(b, "Exception type: TestIceSpider::Ex\nDetail: test error\n");
}
BOOST_AUTO_TEST_CASE( testErrorHandler_Handled1 )