| line | true | false | branch | 
 
| 18 | 0 | 0 | if (!ilogger) return false; | 
 
| 19 | 0 | 0 | stream.flush(); | 
 
| 20 | 0 | 0 | std::string s(stream.str()); | 
 
| 21 | 0 | 0 | stream.str({}); | 
 
| 22 | 0 | 0 | ilogger->log(level, cp, s); | 
 
| 28 | 0 | 0 | if (module) { | 
 
| 30 | 0 | 0 | auto iter = modules.find(module); | 
 
| 31 | 0 | 0 | if (iter == modules.end()) { | 
 
| 32 | 0 | 0 | throw std::invalid_argument("unknown module"); | 
 
| 34 | 0 | 0 | iter->second->set_level(val); | 
 
| 46 | 0 | 0 | std::ostringstream os; | 
 
| 47 | 0 | 0 | os << *this; | 
 
| 48 | 0 | 0 | os.flush(); | 
 
| 49 | 0 | 0 | return os.str(); | 
 
| 55 | 0 | 0 | if (total < 24) { | 
 
| 65 | 0 | 0 | for (auto c : str.src) { | 
 
| 66 | 0 | 0 | if (c > 31) { | 
 
| 82 | 18 | 0 | if (!parent) return; | 
 
| 86 | 0 | 0 | if (parent->children.find(name) != parent->children.end()) { | 
 
|  | 0 | 0 | if (parent->children.find(name) != parent->children.end()) { | 
 
| 87 | 0 | 0 | string msg = "panda::log::Module " + name + "is already registered"; | 
 
|  | 0 | 0 | string msg = "panda::log::Module " + name + "is already registered"; | 
 
| 88 | 0 | 0 | throw std::logic_error(msg.c_str()); | 
 
|  | 0 | 0 | throw std::logic_error(msg.c_str()); | 
 
| 90 | 0 | 0 | parent->children[name] = this; | 
 
| 95 | 0 | 0 | for (auto& p : children) { | 
 
| 96 | 0 | 0 | p.second->set_level(level); | 
 
| 104 | 18 | 0 | static panda::log::Module inst("", nullptr); | 
 
|  | 18 | 0 | static panda::log::Module inst("", nullptr); | 
 
|  | 18 | 0 | static panda::log::Module inst("", nullptr); | 
 
|  | 0 | 0 | static panda::log::Module inst("", nullptr); | 
 
| 107 | 0 | 0 | panda::log::Module* panda_log_module = panda_log_root_module(); | 
 
|  | 18 | 0 | panda::log::Module* panda_log_module = panda_log_root_module(); | 
 
|  | 18 | 0 | panda::log::Module* panda_log_module = panda_log_root_module(); |