mirror of
https://github.com/gabime/spdlog.git
synced 2025-04-06 22:10:24 +08:00
Support custom environment variables for load_env_levels (#3327)
SPDLOG_LEVEL is currently supported to control log levels via load_env_levels. This patch adds support for other environment variable names, such as MYAPP_LEVEL, for load_env_levels.
This commit is contained in:
parent
7cbf2a6967
commit
ae1de0dc8c
@ -387,6 +387,9 @@ void android_example()
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
spdlog::cfg::load_env_levels();
|
||||
// or specify the env variable name:
|
||||
// MYAPP_LEVEL=info,mylogger=trace && ./example
|
||||
// spdlog::cfg::load_env_levels("MYAPP_LEVEL");
|
||||
// or from the command line:
|
||||
// ./example SPDLOG_LEVEL=info,mylogger=trace
|
||||
// #include "spdlog/cfg/argv.h" // for loading levels from argv
|
||||
|
@ -148,6 +148,9 @@ void load_levels_example() {
|
||||
// Set the log level to "info" and mylogger to "trace":
|
||||
// SPDLOG_LEVEL=info,mylogger=trace && ./example
|
||||
spdlog::cfg::load_env_levels();
|
||||
// or specify the env variable name:
|
||||
// MYAPP_LEVEL=info,mylogger=trace && ./example
|
||||
// spdlog::cfg::load_env_levels("MYAPP_LEVEL");
|
||||
// or from command line:
|
||||
// ./example SPDLOG_LEVEL=info,mylogger=trace
|
||||
// #include "spdlog/cfg/argv.h" // for loading levels from argv
|
||||
|
@ -25,8 +25,8 @@
|
||||
|
||||
namespace spdlog {
|
||||
namespace cfg {
|
||||
inline void load_env_levels() {
|
||||
auto env_val = details::os::getenv("SPDLOG_LEVEL");
|
||||
inline void load_env_levels(const char* var = "SPDLOG_LEVEL") {
|
||||
auto env_val = details::os::getenv(var);
|
||||
if (!env_val.empty()) {
|
||||
helpers::load_levels(env_val);
|
||||
}
|
||||
|
@ -19,6 +19,15 @@ TEST_CASE("env", "[cfg]") {
|
||||
#endif
|
||||
load_env_levels();
|
||||
REQUIRE(l1->level() == spdlog::level::warn);
|
||||
|
||||
#ifdef CATCH_PLATFORM_WINDOWS
|
||||
_putenv_s("MYAPP_LEVEL", "l1=trace");
|
||||
#else
|
||||
setenv("MYAPP_LEVEL", "l1=trace", 1);
|
||||
#endif
|
||||
load_env_levels("MYAPP_LEVEL");
|
||||
REQUIRE(l1->level() == spdlog::level::trace);
|
||||
|
||||
spdlog::set_default_logger(spdlog::create<test_sink_st>("cfg-default"));
|
||||
REQUIRE(spdlog::default_logger()->level() == spdlog::level::info);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user