add loglevels to upstream master only

This commit is contained in:
SchoenleAndi 2016-10-19 13:17:46 +02:00
parent ba81287ca5
commit 09ede1bf1f
2 changed files with 9 additions and 2 deletions

View File

@ -115,6 +115,7 @@ namespace g3 {
namespace only_change_at_initialization {
// Enable/Disable a log level {DEBUG,INFO,WARNING,FATAL}
void setLogLevel(LEVELS level, bool enabled_status);
void addLogLevel(LEVELS log_level);
std::string printLevels();
void reset();

View File

@ -40,7 +40,8 @@ namespace g3 {
}
#ifdef G3_DYNAMIC_LOGGING
std::map<int, atomicbool> g_log_level_status = {{g3::kDebugValue, true}, {INFO.value, true}, {WARNING.value, true}, {FATAL.value, true}};
std::map<int, atomicbool> g_default_log_level_status = {{g3::kDebugValue, true}, {INFO.value, true}, {WARNING.value, true}, {FATAL.value, true}};
std::map<int, atomicbool> g_log_level_status(g_default_log_level_status);
#endif
} // internal
@ -51,6 +52,11 @@ namespace g3 {
internal::g_log_level_status[level].get().store(enabled, std::memory_order_release);
}
void addLogLevel(LEVELS log_level) {
internal::g_default_log_level_status[log_level.value].get().store(true, std::memory_order_release);
internal::g_log_level_status[log_level.value].get().store(true, std::memory_order_release);
}
std::string printLevels() {
std::string levels;
for (auto& v : internal::g_log_level_status) {
@ -61,7 +67,7 @@ namespace g3 {
void reset() {
internal::g_log_level_status.clear();
internal::g_log_level_status = std::map<int, atomicbool>{{g3::kDebugValue, true}, {INFO.value, true}, {WARNING.value, true}, {FATAL.value, true}};
internal::g_log_level_status = internal::g_default_log_level_status;
}
} // only_change_at_initialization
#endif