diff options
author | Yuchen Zeng <zyc@google.com> | 2016-04-15 10:38:24 -0700 |
---|---|---|
committer | Yuchen Zeng <zyc@google.com> | 2016-04-15 10:44:50 -0700 |
commit | 95e4c484306fa205ecc5bcc26caef258685c791e (patch) | |
tree | 884d1cf6cba28bb775a5fed8fcf384a6b3da1aa1 /src | |
parent | 700d36b6dfc8347ecd83e99f810d6574ae9a94aa (diff) |
Add knob for default core output verbosity
Diffstat (limited to 'src')
-rw-r--r-- | src/core/lib/support/log.c | 30 | ||||
-rw-r--r-- | src/core/lib/surface/init.c | 2 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/core/lib/support/log.c b/src/core/lib/support/log.c index 04156a5b1f..cdcd377045 100644 --- a/src/core/lib/support/log.c +++ b/src/core/lib/support/log.c @@ -31,14 +31,20 @@ * */ +#include <grpc/support/alloc.h> +#include <grpc/support/atm.h> #include <grpc/support/log.h> #include <grpc/support/port_platform.h> +#include "src/core/lib/support/env.h" +#include "src/core/lib/support/string.h" + #include <stdio.h> #include <string.h> extern void gpr_default_log(gpr_log_func_args *args); static gpr_log_func g_log_func = gpr_default_log; +static gpr_atm g_min_severity_to_print = GPR_LOG_VERBOSITY_UNSET; const char *gpr_log_severity_string(gpr_log_severity severity) { switch (severity) { @@ -54,6 +60,8 @@ const char *gpr_log_severity_string(gpr_log_severity severity) { void gpr_log_message(const char *file, int line, gpr_log_severity severity, const char *message) { + if (severity < gpr_atm_acq_load(&g_min_severity_to_print)) return; + gpr_log_func_args lfargs; memset(&lfargs, 0, sizeof(lfargs)); lfargs.file = file; @@ -63,4 +71,26 @@ void gpr_log_message(const char *file, int line, gpr_log_severity severity, g_log_func(&lfargs); } +void gpr_set_log_verbosity(gpr_log_severity min_severity_to_print) { + gpr_atm_rel_store(&g_min_severity_to_print, (gpr_atm)min_severity_to_print); +} + +void gpr_log_verbosity_init() { + char *verbosity = gpr_getenv("GRPC_VERBOSITY"); + if (verbosity == NULL) return; + + gpr_log_severity min_severity_to_print = GPR_LOG_VERBOSITY_UNSET; + if (strcmp(verbosity, "DEBUG") == 0) { + min_severity_to_print = GPR_LOG_SEVERITY_DEBUG; + } else if (strcmp(verbosity, "INFO") == 0) { + min_severity_to_print = GPR_LOG_SEVERITY_INFO; + } else if (strcmp(verbosity, "ERROR") == 0) { + min_severity_to_print = GPR_LOG_SEVERITY_ERROR; + } + gpr_free(verbosity); + if ((gpr_atm_acq_load(&g_min_severity_to_print)) == GPR_LOG_VERBOSITY_UNSET) { + gpr_atm_rel_store(&g_min_severity_to_print, (gpr_atm)min_severity_to_print); + } +} + void gpr_set_log_function(gpr_log_func f) { g_log_func = f; } diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c index ec75af6e06..d4eb2f8ddd 100644 --- a/src/core/lib/surface/init.c +++ b/src/core/lib/surface/init.c @@ -38,6 +38,7 @@ #include <grpc/grpc.h> #include <grpc/support/alloc.h> +#include <grpc/support/log.h> #include <grpc/support/time.h> #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/compress_filter.h" @@ -69,6 +70,7 @@ static gpr_mu g_init_mu; static int g_initializations; static void do_basic_init(void) { + gpr_log_verbosity_init(); gpr_mu_init(&g_init_mu); grpc_register_built_in_plugins(); g_initializations = 0; |