mlog: allow using numerical level as default prefix
eg, 2,foo:ERROR,bar:INFO
This commit is contained in:
parent
8028b5324e
commit
1e8cc6764e
1 changed files with 37 additions and 25 deletions
|
@ -108,6 +108,32 @@ void mlog_configure(const std::string &filename_base, bool console)
|
||||||
mlog_set_categories(monero_log);
|
mlog_set_categories(monero_log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *get_default_categories(int level)
|
||||||
|
{
|
||||||
|
const char *categories = "";
|
||||||
|
switch (level)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
categories = "*:FATAL,net*:FATAL,global:INFO,verify:FATAL,stacktrace:INFO";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
categories = "*:WARNING,global:INFO,stacktrace:INFO";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
categories = "*:DEBUG";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
categories = "*:TRACE";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
categories = "*:TRACE";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return categories;
|
||||||
|
}
|
||||||
|
|
||||||
void mlog_set_categories(const char *categories)
|
void mlog_set_categories(const char *categories)
|
||||||
{
|
{
|
||||||
el::Loggers::setCategories(categories);
|
el::Loggers::setCategories(categories);
|
||||||
|
@ -117,30 +143,9 @@ void mlog_set_categories(const char *categories)
|
||||||
// maps epee style log level to new logging system
|
// maps epee style log level to new logging system
|
||||||
void mlog_set_log_level(int level)
|
void mlog_set_log_level(int level)
|
||||||
{
|
{
|
||||||
const char *settings = NULL;
|
const char *categories = get_default_categories(level);
|
||||||
switch (level)
|
el::Loggers::setCategories(categories);
|
||||||
{
|
MINFO("Mew log categories: " << categories);
|
||||||
case 0:
|
|
||||||
settings = "*:FATAL,net*:FATAL,global:INFO,verify:FATAL,stacktrace:INFO";
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
settings = "*:WARNING,global:INFO,stacktrace:INFO";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
settings = "*:DEBUG";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
settings = "*:TRACE";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
settings = "*:TRACE";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
el::Loggers::setCategories(settings);
|
|
||||||
MINFO("Mew log categories: " << settings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void mlog_set_log(const char *log)
|
void mlog_set_log(const char *log)
|
||||||
|
@ -151,7 +156,14 @@ void mlog_set_log(const char *log)
|
||||||
level = strtoll(log, &ptr, 10);
|
level = strtoll(log, &ptr, 10);
|
||||||
if (ptr && *ptr)
|
if (ptr && *ptr)
|
||||||
{
|
{
|
||||||
mlog_set_categories(log);
|
// we can have a default level, eg, 2,foo:ERROR
|
||||||
|
if (*ptr == ',') {
|
||||||
|
std::string new_categories = std::string(get_default_categories(level)) + ptr;
|
||||||
|
mlog_set_categories(new_categories.c_str());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mlog_set_categories(log);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (level >= 0 && level <= 4)
|
else if (level >= 0 && level <= 4)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue