diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2012-05-28 04:39:18 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2012-05-28 04:39:18 +0000 |
commit | f278315081b24b59bf73e9613e552e3519200a71 (patch) | |
tree | cdfe0e8d00e2c3e8002284c4541429f91cb66e68 /sca-cpp/trunk/components/log | |
parent | c3eb9d1e20e1f8a7a101854d6a883692cac4e8d0 (diff) |
Improve error reporting with a reason code. Improve debug and audit logging. Fix test scripts to cleanup state from previous builds and correctly report test errors.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1343138 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/components/log')
-rw-r--r-- | sca-cpp/trunk/components/log/log.composite | 2 | ||||
-rw-r--r-- | sca-cpp/trunk/components/log/log.cpp | 22 | ||||
-rw-r--r-- | sca-cpp/trunk/components/log/logger.cpp | 18 | ||||
-rw-r--r-- | sca-cpp/trunk/components/log/scribe-cat.cpp | 10 | ||||
-rw-r--r-- | sca-cpp/trunk/components/log/scribe-status.cpp | 2 | ||||
-rwxr-xr-x | sca-cpp/trunk/components/log/scribe-tail-stop | 5 | ||||
-rw-r--r-- | sca-cpp/trunk/components/log/scribe.hpp | 8 | ||||
-rwxr-xr-x | sca-cpp/trunk/components/log/scribed-central-stop | 6 | ||||
-rwxr-xr-x | sca-cpp/trunk/components/log/scribed-client-stop | 6 | ||||
-rwxr-xr-x | sca-cpp/trunk/components/log/server-test | 1 |
10 files changed, 52 insertions, 28 deletions
diff --git a/sca-cpp/trunk/components/log/log.composite b/sca-cpp/trunk/components/log/log.composite index 97754b534c..c6755f3655 100644 --- a/sca-cpp/trunk/components/log/log.composite +++ b/sca-cpp/trunk/components/log/log.composite @@ -23,6 +23,7 @@ <component name="log"> <implementation.cpp path="." library="liblog"/> + <property name="host"></property> <property name="category">default</property> <service name="log"> <binding.http uri="log"/> @@ -39,6 +40,7 @@ <component name="logger"> <implementation.cpp path="." library="liblogger"/> + <property name="host"></property> <property name="category">default</property> <service name="logger"> <binding.http uri="logger"/> diff --git a/sca-cpp/trunk/components/log/log.cpp b/sca-cpp/trunk/components/log/log.cpp index d43833680d..2e7742cfd7 100644 --- a/sca-cpp/trunk/components/log/log.cpp +++ b/sca-cpp/trunk/components/log/log.cpp @@ -29,6 +29,7 @@ #include "list.hpp" #include "value.hpp" #include "monad.hpp" +#include "../../modules/http/http.hpp" #include "scribe.hpp" namespace tuscany { @@ -37,11 +38,11 @@ namespace log { /** * Post an item to the Scribe log. */ -const failable<value> post(const list<value>& params, const value& category, scribe::Scribe& sc) { +const failable<value> post(const list<value>& params, const value& host, const value& category, scribe::Scribe& sc) { debug(cadr(params), "log::post::value"); - const failable<bool> val = scribe::log(cadr(params), category, sc); + const failable<bool> val = scribe::log(cadr(params), host, category, sc); if (!hasContent(val)) - return mkfailure<value>(reason(val)); + return mkfailure<value>(val); return value(mklist<value>(true)); } @@ -50,17 +51,18 @@ const failable<value> post(const list<value>& params, const value& category, scr */ class applyLog { public: - applyLog(const value& category, scribe::Scribe& sc) : category(category), sc(sc) { + applyLog(const value& host, const value& category, scribe::Scribe& sc) : host(host), category(category), sc(sc) { } const value operator()(const list<value>& params) const { const value func(car(params)); if (func == "post") - return post(cdr(params), category, sc); - return tuscany::mkfailure<tuscany::value>(); + return post(cdr(params), host, category, sc); + return mkfailure<value>(); } private: + const value host; const value category; scribe::Scribe& sc; }; @@ -68,16 +70,18 @@ private: /** * Start the component. */ -const failable<value> start(unused const list<value>& params) { +const failable<value> start(const list<value>& params) { // Connect to Scribe scribe::Scribe& sc = *(new (gc_new<scribe::Scribe>()) scribe::Scribe("localhost", 1464)); // Extract the configured category - const value category = ((lambda<value(list<value>)>)car(params))(list<value>()); + const value host = ((lambda<value(list<value>)>)car(params))(list<value>()); + const value category = ((lambda<value(list<value>)>)cadr(params))(list<value>()); + debug(host, "log::start::host"); debug(category, "log::start::category"); // Return the component implementation lambda function - return value(lambda<value(const list<value>&)>(applyLog(category, sc))); + return value(lambda<value(const list<value>&)>(applyLog(host, category, sc))); } } diff --git a/sca-cpp/trunk/components/log/logger.cpp b/sca-cpp/trunk/components/log/logger.cpp index eb18ed30db..d7a54507fb 100644 --- a/sca-cpp/trunk/components/log/logger.cpp +++ b/sca-cpp/trunk/components/log/logger.cpp @@ -30,6 +30,7 @@ #include "list.hpp" #include "value.hpp" #include "monad.hpp" +#include "../../modules/http/http.hpp" #include "scribe.hpp" namespace tuscany { @@ -40,24 +41,25 @@ namespace logger { */ class applyLog { public: - applyLog(const lambda<value(const list<value>&)>& relay, const value& category, scribe::Scribe& sc) : relay(relay), category(category), sc(sc) { + applyLog(const lambda<value(const list<value>&)>& relay, const value& host, const value& category, scribe::Scribe& sc) : relay(relay), host(host), category(category), sc(sc) { } const value operator()(const list<value>& params) const { // Log the function params debug(params, "logger::apply::params"); - scribe::log(params, category, sc); + scribe::log(params, host, category, sc); - // Relay the function + // Relay the function call const failable<value> res = relay(params); // Log the result - scribe::log(res, category, sc); + scribe::log(res, host, category, sc); return res; } private: const lambda<value(const list<value>&)> relay; + const value host; const value category; scribe::Scribe& sc; }; @@ -65,17 +67,19 @@ private: /** * Start the component. */ -const failable<value> start(unused const list<value>& params) { +const failable<value> start(const list<value>& params) { // Connect to Scribe scribe::Scribe& sc = *(new (gc_new<scribe::Scribe>()) scribe::Scribe("localhost", 1464)); // Extract the configured relay service and category const value rel = car(params); - const value category = ((lambda<value(list<value>)>)cadr(params))(list<value>()); + const value host = ((lambda<value(list<value>)>)cadr(params))(list<value>()); + const value category = ((lambda<value(list<value>)>)caddr(params))(list<value>()); + debug(host, "logger::start::host"); debug(category, "logger::start::category"); // Return the component implementation lambda function - return value(lambda<value(const list<value>&)>(applyLog(rel, category, sc))); + return value(lambda<value(const list<value>&)>(applyLog(rel, host, category, sc))); } } diff --git a/sca-cpp/trunk/components/log/scribe-cat.cpp b/sca-cpp/trunk/components/log/scribe-cat.cpp index 7f48ddb59b..fbfdaca533 100644 --- a/sca-cpp/trunk/components/log/scribe-cat.cpp +++ b/sca-cpp/trunk/components/log/scribe-cat.cpp @@ -47,7 +47,6 @@ int cat(const string& host, const string& category, const string& type) { // Write line prefix ostringstream os; - os << "[" << host << "] "; if (length(type) != 0) os << "[" << logTime() << "] [" << type << "] "; const string prefix = str(os); @@ -58,13 +57,14 @@ int cat(const string& host, const string& category, const string& type) { const char* s = fgets(buf + pl, 8192 - pl, stdin); if (s == NULL) return 0; + + // Remove trailing '\n' const size_t l = strlen(s); - if (l < 2) - return 0; - buf[pl + l - 1] = '\0'; + if (l > 0) + buf[pl + l - 1] = '\0'; // Log the line - const failable<bool> val = scribe::log(buf, category, sc); + const failable<bool> val = scribe::log(buf, host, category, sc); if (!hasContent(val)) return 1; } diff --git a/sca-cpp/trunk/components/log/scribe-status.cpp b/sca-cpp/trunk/components/log/scribe-status.cpp index 0e5f03f501..79f7572947 100644 --- a/sca-cpp/trunk/components/log/scribe-status.cpp +++ b/sca-cpp/trunk/components/log/scribe-status.cpp @@ -45,7 +45,7 @@ const int status(const string& host, const int port) { // Interpret and display results if (!hasContent(fs)) { - cerr << reason(fs) << endl; + cerr << reason(fs) << " : " << rcode(fs) << endl; return 2; } const string s = content(fs); diff --git a/sca-cpp/trunk/components/log/scribe-tail-stop b/sca-cpp/trunk/components/log/scribe-tail-stop index b46c1ecca6..0d43570a6f 100755 --- a/sca-cpp/trunk/components/log/scribe-tail-stop +++ b/sca-cpp/trunk/components/log/scribe-tail-stop @@ -38,5 +38,8 @@ fi file=`echo "import os; print os.path.realpath('$file')" | python` cmd="tail -f -n 0 $file" -kill `ps -ef | grep -v grep | grep "${cmd}" | awk '{ print $2 }'` +k=`ps -ef | grep -v grep | grep "${cmd}" | awk '{ print $2 }'` +if [ "$k" != "" ]; then + kill $k +fi diff --git a/sca-cpp/trunk/components/log/scribe.hpp b/sca-cpp/trunk/components/log/scribe.hpp index 7fa420f945..5ae8a50776 100644 --- a/sca-cpp/trunk/components/log/scribe.hpp +++ b/sca-cpp/trunk/components/log/scribe.hpp @@ -98,7 +98,7 @@ private: ::scribe::thrift::scribeClient* client; boost::shared_ptr<apache::thrift::transport::TTransport> transport; - friend const failable<bool> log(const value& val, const value& category, const Scribe& sc); + friend const failable<bool> log(const value& val, const string& host, const value& category, const Scribe& sc); friend const failable<string> status(const Scribe& sc); /** @@ -122,18 +122,20 @@ private: /** * Log an item. */ -const failable<bool> log(const value& val, const value& category, const Scribe& sc) { +const failable<bool> log(const value& val, const string& host, const value& category, const Scribe& sc) { debug(val, "scribe::log::value"); debug(category, "scribe::log::category"); const value cat = isString(category)? value(c_str(category)):category; const string cs(scheme::writeValue(cat)); const string vs(scheme::writeValue(val)); + ostringstream os; + os << "[" << host << "] " << vs; try { ::scribe::thrift::LogEntry entry; entry.category = c_str(cs); - entry.message = c_str(vs); + entry.message = c_str(str(os)); std::vector< ::scribe::thrift::LogEntry> msgs; msgs.push_back(entry); diff --git a/sca-cpp/trunk/components/log/scribed-central-stop b/sca-cpp/trunk/components/log/scribed-central-stop index acded2a482..2d301149b8 100755 --- a/sca-cpp/trunk/components/log/scribed-central-stop +++ b/sca-cpp/trunk/components/log/scribed-central-stop @@ -25,4 +25,8 @@ scribe_prefix=`cat $here/scribe.prefix` thrift_prefix=`cat $here/thrift.prefix` scribed="$scribe_prefix/bin/scribed -c $root/scribe/conf/scribe-central.conf" -kill `ps -ef | grep -v grep | grep "${scribed}" | awk '{ print $2 }'` +k=`ps -ef | grep -v grep | grep "${scribed}" | awk '{ print $2 }'` +if [ "$k" != "" ]; then + kill $k +fi + diff --git a/sca-cpp/trunk/components/log/scribed-client-stop b/sca-cpp/trunk/components/log/scribed-client-stop index 0f9c409183..d6a6345f29 100755 --- a/sca-cpp/trunk/components/log/scribed-client-stop +++ b/sca-cpp/trunk/components/log/scribed-client-stop @@ -25,4 +25,8 @@ scribe_prefix=`cat $here/scribe.prefix` thrift_prefix=`cat $here/thrift.prefix` scribed="$scribe_prefix/bin/scribed -c $root/scribe/conf/scribe-client.conf" -kill `ps -ef | grep -v grep | grep "${scribed}" | awk '{ print $2 }'` +k=`ps -ef | grep -v grep | grep "${scribed}" | awk '{ print $2 }'` +if [ "$k" != "" ]; then + kill $k +fi + diff --git a/sca-cpp/trunk/components/log/server-test b/sca-cpp/trunk/components/log/server-test index 015691f958..6c9cf47135 100755 --- a/sca-cpp/trunk/components/log/server-test +++ b/sca-cpp/trunk/components/log/server-test @@ -18,6 +18,7 @@ # under the License. # Setup +rm -rf tmp ../../modules/http/httpd-conf tmp localhost 8090 ../../modules/http/htdocs ../../modules/http/httpd-event-conf tmp ../../modules/server/server-conf tmp |