Add string to level conversions
This commit is contained in:
parent
9f6566812b
commit
2515db00f2
26
log.cpp
26
log.cpp
@ -25,11 +25,14 @@
|
||||
|
||||
#include <ctime>
|
||||
#include <cstring>
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include <boost/format.hpp>
|
||||
|
||||
using namespace util;
|
||||
using std::string;
|
||||
using std::map;
|
||||
|
||||
void
|
||||
check_level (level_t l)
|
||||
@ -55,6 +58,29 @@ level_to_string (level_t l) {
|
||||
}
|
||||
|
||||
|
||||
level_t
|
||||
string_to_level (const string &name) {
|
||||
static const map <string, level_t> NAME_LEVELS = {
|
||||
{ "EMERGENCY", EMERGENCY },
|
||||
{ "ALERT", ALERT },
|
||||
{ "CRITICAL", CRITICAL },
|
||||
{ "ERROR", ERROR },
|
||||
{ "WARNING", WARNING },
|
||||
{ "WARN", WARNING },
|
||||
{ "NOTICE", NOTICE },
|
||||
{ "INFO", INFO },
|
||||
{ "INFORMATIONAL", INFORMATIONAL },
|
||||
{ "DEBUG", DEBUG }
|
||||
};
|
||||
|
||||
auto pos = NAME_LEVELS.find (name);
|
||||
if (pos == NAME_LEVELS.end ())
|
||||
throw std::range_error (name);
|
||||
|
||||
return pos->second;
|
||||
}
|
||||
|
||||
|
||||
std::ostream&
|
||||
util::operator<< (std::ostream& os, level_t l) {
|
||||
os << level_to_string (l);
|
||||
|
Loading…
Reference in New Issue
Block a user