From 13c04a6f477f49e3d33f6b71cf26e076a46d685f Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 2 Apr 2012 06:23:51 +0000 Subject: Detach Memcached and Pgsql from terminal when logging with a logger like Scribe. Add a Scribe status command. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1308246 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/components/log/scribe.hpp | 39 +++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'sca-cpp/trunk/components/log/scribe.hpp') diff --git a/sca-cpp/trunk/components/log/scribe.hpp b/sca-cpp/trunk/components/log/scribe.hpp index a7fecf9865..7fa420f945 100644 --- a/sca-cpp/trunk/components/log/scribe.hpp +++ b/sca-cpp/trunk/components/log/scribe.hpp @@ -37,7 +37,7 @@ #undef OK // Ignore integer conversion issues in Thrift and Scribe headers -#ifdef WANT_MAINTAINER_MODE +#ifdef WANT_MAINTAINER_WARNINGS #pragma GCC diagnostic ignored "-Wconversion" #endif @@ -47,7 +47,7 @@ #include "gen-cpp/scribe.h" -#ifdef WANT_MAINTAINER_MODE +#ifdef WANT_MAINTAINER_WARNINGS #pragma GCC diagnostic warning "-Wconversion" #endif @@ -99,6 +99,7 @@ private: boost::shared_ptr transport; friend const failable log(const value& val, const value& category, const Scribe& sc); + friend const failable status(const Scribe& sc); /** * Initialize the Scribe connection. @@ -147,6 +148,40 @@ const failable log(const value& val, const value& category, const Scribe& return true; } +/** + * Return Scribe status. + */ +const failable status(const Scribe& sc) { + debug("scribe::status"); + + try { + ::facebook::fb303::fb_status s = sc.client->getStatus(); + switch(s) { + case ::facebook::fb303::DEAD: + debug("DEAD", "scribe::status::result"); + return string("DEAD"); + case ::facebook::fb303::STARTING: + debug("STARTING", "scribe::status::result"); + return string("STARTING"); + case ::facebook::fb303::ALIVE: + debug("ALIVE", "scribe::status::result"); + return string("ALIVE"); + case ::facebook::fb303::STOPPING: + debug("STOPPING", "scribe::status::result"); + return string("STOPPING"); + case ::facebook::fb303::STOPPED: + debug("STOPPED", "scribe::status::result"); + return string("STOPPED"); + case ::facebook::fb303::WARNING: + debug("WARNING", "scribe::status::result"); + return string("WARNING"); + } + return mkfailure("Unknown status"); + } catch (const std::exception& e) { + return mkfailure(e.what()); + } +} + } } -- cgit v1.2.3