diff options
author | gabime <gmelman1@gmail.com> | 2019-12-22 21:40:19 +0300 |
---|---|---|
committer | gabime <gmelman1@gmail.com> | 2019-12-22 21:40:19 +0300 |
commit | 877eee408e5dae9b0c97dd2af31e90713ba4f64a (patch) | |
tree | 0e739f1a4fb1d433a878f9b412a2f54ebbe2c444 /include/spdlog/cfg/argv.h | |
parent | 8dd54de326af2063b4a1a9bffa86a4071f632d75 (diff) |
renamed loaders with cfg
Diffstat (limited to 'include/spdlog/cfg/argv.h')
-rw-r--r-- | include/spdlog/cfg/argv.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/spdlog/cfg/argv.h b/include/spdlog/cfg/argv.h new file mode 100644 index 00000000..71ddb9ea --- /dev/null +++ b/include/spdlog/cfg/argv.h @@ -0,0 +1,40 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once +#include <spdlog/cfg/helpers.h> +#include <spdlog/details/os.h> + +// +// Init log levels using each argv entry that starts with "SPDLOG_LEVEL=" +// +// set all loggers to debug level: +// example.exe "SPDLOG_LEVEL=debug" + +// set logger1 to trace level +// example.exe "SPDLOG_LEVEL=logger1=trace" + +// turn off all logging except for logger1 and logger2: +// example.exe "SPDLOG_LEVEL=off,logger1=debug,logger2=info" + +namespace spdlog { +namespace cfg { + +// search for SPDLOG_LEVEL= in the args and use it to init the levels +void load_argv(int args, char **argv) +{ + const std::string spdlog_level_prefix = "SPDLOG_LEVEL="; + for (int i = 1; i < args; i++) + { + std::string arg = argv[i]; + if (arg.find(spdlog_level_prefix) == 0) + { + auto levels_string = arg.substr(spdlog_level_prefix.size()); + auto levels = helpers::extract_levels(levels_string); + details::registry::instance().update_levels(std::move(levels)); + } + } +} + +} // namespace cfg +} // namespace spdlog |