return entry.prio >= level && (entry.channel == channel || channel == "*");
};
- auto p = summary.tail.end();
- while (num > 0 && p != summary.tail.begin()) {
- if (match(*p)) {
+ auto rp = summary.tail.rbegin();
+ for (; num > 0 && rp != summary.tail.rend(); ++rp) {
+ if (match(*rp)) {
num--;
}
- --p;
+ }
+ if (rp == summary.tail.rend()) {
+ --rp;
}
ostringstream ss;
- for ( ; p != summary.tail.end(); ++p) {
- if (!match(*p)) {
+ for (; rp != summary.tail.rbegin(); --rp) {
+ if (!match(*rp)) {
continue;
}
if (f) {
- f->dump_object("entry", *p);
+ f->dump_object("entry", *rp);
} else {
- ss << *p << "\n";
+ ss << *rp << "\n";
}
}
if (f) {
if (graylogs.count(channel) == 0) {
auto graylog(std::make_shared<ceph::logging::Graylog>("mon"));
- graylog->set_fsid(g_conf->fsid);
+ graylog->set_fsid(g_conf->get_val<uuid_d>("fsid"));
graylog->set_hostname(g_conf->host);
graylog->set_destination(get_str_map_key(log_to_graylog_host, channel,
&CLOG_CONFIG_DEFAULT_KEY),