mirror of
https://github.com/KjellKod/g3log.git
synced 2024-12-12 10:23:50 +01:00
effectively remove feature - it is almost useless. Keep the change to the unit test avoiding premature exit when fatal signal handling is not enabled in the library
This commit is contained in:
parent
b43848c527
commit
4bd1870a76
@ -76,9 +76,8 @@ If the ```<boolean-expression>``` evaluates to false then the the message for th
|
||||
const LEVELS DEADLY {FATAL.value + 1, {"DEADLY"}};
|
||||
```
|
||||
|
||||
Both custom and built-in log levels can be turned on and off using the function ```g3::only_change_at_initialization::setLogLevel```. Calling ```g3::only_change_at_initialization::reset``` will reset all built-in levels to their defaults and remove custom levels. If the latter is not the desired behavior the function ```g3::only_change_at_initialization::addLogLevel``` can be used to turn a custom log level on or off and save this state as the default which is restored when ```reset()``` is called.
|
||||
|
||||
Calling ```g3::only_change_at_initialization::reset(true)``` will remove all custom levels regardless of whether ```addLevel``` was used with them.
|
||||
|
||||
|
||||
## Sink <a name="sink_creation">creation</a> and utilization
|
||||
The default sink for g3log is the one as used in g2log. It is a simple file sink with a limited API. The details for the default file sink can be found in [filesink.hpp](src/g3log/filesink.hpp), [filesink.cpp](src/filesink.cpp), [filesinkhelper.ipp](src/filesinkhelper.ipp)
|
||||
|
@ -115,9 +115,8 @@ 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 level, bool enabled_status = true);
|
||||
std::string printLevels();
|
||||
void reset(bool remove_custom_levels = false);
|
||||
void reset();
|
||||
|
||||
} // only_change_at_initialization
|
||||
#endif
|
||||
|
@ -40,23 +40,17 @@ namespace g3 {
|
||||
}
|
||||
|
||||
#ifdef G3_DYNAMIC_LOGGING
|
||||
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);
|
||||
std::map<int, atomicbool> g_log_level_status = {{g3::kDebugValue, true}, {INFO.value, true}, {WARNING.value, true}, {FATAL.value, true}};
|
||||
#endif
|
||||
} // internal
|
||||
|
||||
#ifdef G3_DYNAMIC_LOGGING
|
||||
namespace only_change_at_initialization {
|
||||
void setLogLevel(LEVELS log_level, bool enabled_status) {
|
||||
void setLogLevel(LEVELS log_level, bool enabled) {
|
||||
int level = log_level.value;
|
||||
internal::g_log_level_status[level].get().store(enabled_status, std::memory_order_release);
|
||||
internal::g_log_level_status[level].get().store(enabled, std::memory_order_release);
|
||||
}
|
||||
|
||||
void addLogLevel(LEVELS log_level, bool enabled_status) {
|
||||
internal::g_default_log_level_status[log_level.value].get().store(enabled_status, std::memory_order_release);
|
||||
setLogLevel(log_level, enabled_status);
|
||||
}
|
||||
|
||||
std::string printLevels() {
|
||||
std::string levels;
|
||||
for (auto& v : internal::g_log_level_status) {
|
||||
@ -65,10 +59,9 @@ namespace g3 {
|
||||
return levels;
|
||||
}
|
||||
|
||||
void reset(bool remove_custom_levels) {
|
||||
if (remove_custom_levels)
|
||||
internal::g_default_log_level_status = { { g3::kDebugValue, true },{ INFO.value, true },{ WARNING.value, true },{ FATAL.value, true } };
|
||||
internal::g_log_level_status = internal::g_default_log_level_status;
|
||||
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}};
|
||||
}
|
||||
} // only_change_at_initialization
|
||||
#endif
|
||||
|
@ -572,7 +572,7 @@ namespace {
|
||||
RestoreDynamicLoggingLevels() {
|
||||
};
|
||||
~RestoreDynamicLoggingLevels() {
|
||||
g3::only_change_at_initialization::reset(true);
|
||||
g3::only_change_at_initialization::reset();
|
||||
g3::only_change_at_initialization::setLogLevel(DEBUG, false);
|
||||
g3::only_change_at_initialization::setLogLevel(INFO, false);
|
||||
g3::only_change_at_initialization::setLogLevel(WARNING, false);
|
||||
@ -592,16 +592,6 @@ TEST(CustomLogLevels, AddANonFatal__ThenReset) {
|
||||
EXPECT_FALSE(g3::logLevel(MYINFO));
|
||||
}
|
||||
|
||||
TEST(CustomLogLevels, AddANonFatalWithDefault__ThenReset) {
|
||||
RestoreFileLogger logger(log_directory);
|
||||
RestoreDynamicLoggingLevels raiiLevelRestore;
|
||||
const LEVELS MYINFO{ WARNING.value + 2,{ "MY_INFO_LEVEL" } };
|
||||
EXPECT_FALSE(g3::logLevel(MYINFO));
|
||||
g3::only_change_at_initialization::addLogLevel(MYINFO, true);
|
||||
EXPECT_TRUE(g3::logLevel(MYINFO));
|
||||
g3::only_change_at_initialization::reset();
|
||||
EXPECT_TRUE(g3::logLevel(MYINFO));
|
||||
}
|
||||
|
||||
TEST(CustomLogLevels, AddANonFatal__DidNotAddItToEnabledValue1) {
|
||||
RestoreFileLogger logger(log_directory);
|
||||
|
Loading…
Reference in New Issue
Block a user