From c7c8fcf152a41c31a514f8523052c922018ec480 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 5 Dec 2008 14:22:01 -0800 Subject: [PATCH] mon: rename out to log, log.type files --- src/include/LogEntry.h | 2 +- src/mon/LogMonitor.cc | 59 ++++++++++++++++++++++++++++++------------ src/mon/mon_types.h | 2 +- 3 files changed, 45 insertions(+), 18 deletions(-) diff --git a/src/include/LogEntry.h b/src/include/LogEntry.h index 6442356954787..29e86cf4a831f 100644 --- a/src/include/LogEntry.h +++ b/src/include/LogEntry.h @@ -70,7 +70,7 @@ inline ostream& operator<<(ostream& out, const log_type& t) inline ostream& operator<<(ostream& out, const LogEntry& e) { - return out << e.stamp << " " << e.type << " " << e.who << " : " << e.seq << " : " << e.msg; + return out << e.stamp << " " << e.who << " " << e.seq << " : " << e.type << " " << e.msg; } #endif diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc index d6c51769382d3..73cb05fce19e5 100644 --- a/src/mon/LogMonitor.cc +++ b/src/mon/LogMonitor.cc @@ -96,32 +96,59 @@ bool LogMonitor::update_from_paxos() assert(paxosv >= log_version); if (log_version == 0 && paxosv > 1) { - log_version = mon->store->get_int("log", "last_consumed"); + log_version = mon->store->get_int("logm", "last_consumed"); } + bufferlist blog; + bufferlist blogdebug; + bufferlist bloginfo; + bufferlist blogwarn; + bufferlist blogerr; + // walk through incrementals while (paxosv > log_version) { - bufferlist bl, new_bl; - LogEntry le; + bufferlist bl; bool success = paxos->read(log_version+1, bl); assert(success); - bufferlist::iterator p = bl.begin(); - - le.decode(p); - dout(7) << "update_from_paxos applying incremental log " << log_version+1 << " " << le << dendl; - stringstream ss; - ss << le; - string s; - getline(ss, s); - new_bl.append(s); - new_bl.append("\n"); - mon->store->append_bl_ss(new_bl, "out", NULL); + bufferlist::iterator p = bl.begin(); + while (!p.end()) { + LogEntry le; + le.decode(p); + dout(7) << "update_from_paxos applying incremental log " << log_version+1 << " " << le << dendl; + + stringstream ss; + ss << le; + string s; + getline(ss, s); + s += "\n"; + + blog.append(s); + if (le.type >= LOG_DEBUG) + blogdebug.append(s); + if (le.type >= LOG_INFO) + bloginfo.append(s); + if (le.type >= LOG_WARN) + blogwarn.append(s); + if (le.type >= LOG_ERROR) + blogerr.append(s); + } log_version++; } - - mon->store->put_int(paxosv, "log", "last_consumed"); + + if (blog.length()) + mon->store->append_bl_ss(blog, "log", NULL); + if (blogdebug.length()) + mon->store->append_bl_ss(blogdebug, "log.debug", NULL); + if (bloginfo.length()) + mon->store->append_bl_ss(bloginfo, "log.info", NULL); + if (blogwarn.length()) + mon->store->append_bl_ss(blogwarn, "log.warn", NULL); + if (blogerr.length()) + mon->store->append_bl_ss(blogerr, "log.err", NULL); + + mon->store->put_int(paxosv, "logm", "last_consumed"); return true; } diff --git a/src/mon/mon_types.h b/src/mon/mon_types.h index e78c3a01c4085..34315d261426f 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -28,7 +28,7 @@ inline const char *get_paxos_name(int p) { case PAXOS_OSDMAP: return "osdmap"; case PAXOS_CLIENTMAP: return "clientmap"; case PAXOS_PGMAP: return "pgmap"; - case PAXOS_LOG: return "log"; + case PAXOS_LOG: return "logm"; default: assert(0); return 0; } } -- 2.39.5