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/env.h | |
parent | 8dd54de326af2063b4a1a9bffa86a4071f632d75 (diff) |
renamed loaders with cfg
Diffstat (limited to 'include/spdlog/cfg/env.h')
-rw-r--r-- | include/spdlog/cfg/env.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/spdlog/cfg/env.h b/include/spdlog/cfg/env.h new file mode 100644 index 00000000..4b4a22c7 --- /dev/null +++ b/include/spdlog/cfg/env.h @@ -0,0 +1,36 @@ +// 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/registry.h> +#include <spdlog/details/os.h> + +// +// Init levels and patterns from env variables SPDLOG_LEVEL +// Inspired from Rust's "env_logger" crate (https://crates.io/crates/env_logger). +// Note - fallback to "info" level on unrecognized levels +// +// Examples: +// +// set global level to debug: +// export SPDLOG_LEVEL=debug +// +// turn off all logging except for logger1: +// export SPDLOG_LEVEL="off,logger1=debug" +// + +// turn off all logging except for logger1 and logger2: +// export SPDLOG_LEVEL="off,logger1=debug,logger2=info" + +namespace spdlog { +namespace cfg { +void load_env() +{ + auto env_val = details::os::getenv("SPDLOG_LEVEL"); + auto levels = helpers::extract_levels(env_val); + details::registry::instance().update_levels(std::move(levels)); +} + +} // namespace cfg +} // namespace spdlog |