1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_LOG_SUBSYSTEMS
5 #define CEPH_LOG_SUBSYSTEMS
10 #include "include/assert.h"
16 int log_level, gather_level;
19 Subsystem() : log_level(0), gather_level(0) {}
23 std::vector<Subsystem> m_subsys;
24 unsigned m_max_name_len;
29 SubsystemMap() : m_max_name_len(0) {}
31 size_t get_num() const {
32 return m_subsys.size();
35 int get_max_subsys_len() const {
36 return m_max_name_len;
39 void add(unsigned subsys, std::string name, int log, int gather);
40 void set_log_level(unsigned subsys, int log);
41 void set_gather_level(unsigned subsys, int gather);
43 int get_log_level(unsigned subsys) const {
44 if (subsys >= m_subsys.size())
46 return m_subsys[subsys].log_level;
49 int get_gather_level(unsigned subsys) const {
50 if (subsys >= m_subsys.size())
52 return m_subsys[subsys].gather_level;
55 const std::string& get_name(unsigned subsys) const {
56 if (subsys >= m_subsys.size())
58 return m_subsys[subsys].name;
61 bool should_gather(unsigned sub, int level) {
62 assert(sub < m_subsys.size());
63 return level <= m_subsys[sub].gather_level ||
64 level <= m_subsys[sub].log_level;