+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+//
#include <syslog.h>
#include <boost/algorithm/string/predicate.hpp>
o.push_back(new LogEntryKey(entity_inst_t(), utime_t(1,2), 34));
}
+clog_type LogEntry::str_to_level(std::string const &str)
+{
+ std::string level_str = str;
+ std::transform(level_str.begin(), level_str.end(), level_str.begin(),
+ [](char c) {return std::tolower(c);});
+
+ if (level_str == "debug") {
+ return CLOG_DEBUG;
+ } else if (level_str == "info") {
+ return CLOG_INFO;
+ } else if (level_str == "sec") {
+ return CLOG_SEC;
+ } else if (level_str == "warn" | level_str == "warning") {
+ return CLOG_WARN;
+ } else if (level_str == "error" | level_str == "err") {
+ return CLOG_ERROR;
+ } else {
+ return CLOG_UNKNOWN;
+ }
+}
+
// ----
int clog_type_to_syslog_level(clog_type t)
o.push_back(new LogSummary);
// more!
}
+
void decode(bufferlist::iterator& bl);
void dump(Formatter *f) const;
static void generate_test_instances(list<LogEntry*>& o);
+ static clog_type str_to_level(std::string const &str);
};
WRITE_CLASS_ENCODER_FEATURES(LogEntry)
std::string level_str;
clog_type level;
if (cmd_getval(g_ceph_context, cmdmap, "level", level_str)) {
- if (level_str == "debug") {
- level = CLOG_DEBUG;
- } else if (level_str == "info") {
- level = CLOG_INFO;
- } else if (level_str == "sec") {
- level = CLOG_SEC;
- } else if (level_str == "warn") {
- level = CLOG_WARN;
- } else if (level_str == "error") {
- level = CLOG_ERROR;
- } else {
+ level = LogEntry::str_to_level(level_str);
+ if (level == CLOG_UNKNOWN) {
ss << "Invalid severity '" << level_str << "'";
mon->reply_command(op, -EINVAL, ss.str(), get_last_committed());
return true;
int LogMonitor::sub_name_to_id(const string& n)
{
- if (n == "log-debug")
- return CLOG_DEBUG;
- if (n == "log-info")
- return CLOG_INFO;
- if (n == "log-sec")
- return CLOG_SEC;
- if (n == "log-warn")
- return CLOG_WARN;
- if (n == "log-error")
- return CLOG_ERROR;
- return CLOG_UNKNOWN;
+ if (n.substr(0, 4) == "log-" && n.size() > 4) {
+ return LogEntry::str_to_level(n.substr(4));
+ } else {
+ return CLOG_UNKNOWN;
+ }
}
void LogMonitor::check_subs()