24 #include <logging/cache.h> 26 #include <xmlrpc-c/girerr.hpp> 44 __xmlrpc_registry = registry;
45 __cache_logger = cache_logger;
54 __xmlrpc_registry->addMethod(
"log.entries", __log_entries);
55 __xmlrpc_registry->addMethod(
"log.get_size", __log_get_size);
56 __xmlrpc_registry->addMethod(
"log.set_size", __log_set_size);
57 __xmlrpc_registry->addMethod(
"log.log_debug", __log_log_debug);
58 __xmlrpc_registry->addMethod(
"log.log_info", __log_log_info);
59 __xmlrpc_registry->addMethod(
"log.log_warn", __log_log_warn);
60 __xmlrpc_registry->addMethod(
"log.log_error", __log_log_error);
67 delete __log_get_size;
68 delete __log_set_size;
69 delete __log_log_debug;
70 delete __log_log_info;
71 delete __log_log_warn;
72 delete __log_log_debug;
87 _help =
"Returns array of recent log messages. Each entry is a struct " 88 "consisting of the entries component, time string and message.";
90 __cache_logger = cache_logger;
104 xmlrpc_c::value *
const result)
107 __cache_logger->lock();
108 std::list<CacheLogger::CacheEntry> messages = __cache_logger->get_messages();
109 __cache_logger->unlock();
110 std::list<CacheLogger::CacheEntry>::iterator i;
112 std::vector<xmlrpc_c::value> array;
114 for (i = messages.begin(); i != messages.end(); ++i) {
115 std::map<std::string, xmlrpc_c::value> elem;
116 elem.insert(std::make_pair(
"component", xmlrpc_c::value_string(i->component)));
117 elem.insert(std::make_pair(
"time", xmlrpc_c::value_datetime(i->time)));
118 elem.insert(std::make_pair(
"message", xmlrpc_c::value_string(i->message)));
119 array.push_back(xmlrpc_c::value_struct(elem));
122 *result = xmlrpc_c::value_array(array);
138 _help =
"Get current maximum size of the cache log.";
140 __cache_logger = cache_logger;
154 xmlrpc_c::value *
const result)
156 *result = xmlrpc_c::value_int(__cache_logger->size());
172 _help =
"Set maximum size of cache logger.";
174 __cache_logger = cache_logger;
188 xmlrpc_c::value *
const result)
190 int new_size = params.getInt(0);
192 throw xmlrpc_c::fault(
"Illegal size value, must be integer > 0",
193 xmlrpc_c::fault::CODE_UNSPECIFIED);
195 __cache_logger->set_size(new_size);
196 *result = xmlrpc_c::value_nil();
214 _help =
"Log message of specified level, arguments are component and message.";
217 __log_level = log_level;
231 xmlrpc_c::value *
const result)
233 std::string component = params.getString(0);
234 std::string message = params.getString(1);
235 __logger->log(__log_level, component.c_str(),
"%s", message.c_str());
236 *result = xmlrpc_c::value_nil();
informational output about normal procedures
virtual void execute(xmlrpc_c::paramList const ¶ms, xmlrpc_c::value *const result)
Execute method.
Fawkes library namespace.
warning, should be investigated but software still functions, an example is that something was reques...
Get most recent log entries via XML-RPC method.
virtual ~log_set_size()
Virtual empty destructor.
log_entries(fawkes::CacheLogger *logger)
Constructor.
log_log(fawkes::Logger *logger, fawkes::Logger::LogLevel log_level)
Constructor.
error, may be recoverable (software still running) or not (software has to terminate).
XML-RPC method to get the current cache log size.
XML-RPC method to set maximum size of cache logger.
log_get_size(fawkes::CacheLogger *logger)
Constructor.
XML-RPC method to log a message.
virtual ~log_entries()
Virtual empty destructor.
virtual ~log_log()
Virtual empty destructor.
~XmlRpcLogMethods()
Destructor.
debug output, relevant only when tracking down problems
virtual void execute(xmlrpc_c::paramList const ¶ms, xmlrpc_c::value *const result)
Execute method.
virtual void execute(xmlrpc_c::paramList const ¶ms, xmlrpc_c::value *const result)
Execute method.
virtual ~log_get_size()
Virtual empty destructor.
log_set_size(fawkes::CacheLogger *cache_logger)
Constructor.
virtual void execute(xmlrpc_c::paramList const ¶ms, xmlrpc_c::value *const result)
Execute method.
XmlRpcLogMethods(xmlrpc_c::registry *registry, fawkes::CacheLogger *cache_logger, fawkes::Logger *logger)
Constructor.