From c7cfee04c4dd9dcafebe1659d7f7cf1ffd7ff14e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 4 May 2018 08:00:22 +0200 Subject: Logging: setting log level wasn't working --- intern/clog/CLG_log.h | 2 ++ intern/clog/clog.c | 14 ++++++++++++++ source/creator/creator_args.c | 7 +++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/intern/clog/CLG_log.h b/intern/clog/CLG_log.h index 8afa9edd75b..ff8f983b10c 100644 --- a/intern/clog/CLG_log.h +++ b/intern/clog/CLG_log.h @@ -150,6 +150,8 @@ void CLG_fatal_fn_set(void (*fatal_fn)(void *file_handle)); void CLG_type_filter_include(const char *type_filter, int type_filter_len); void CLG_type_filter_exclude(const char *type_filter, int type_filter_len); +void CLG_level_set(int level); + void CLG_logref_init(CLG_LogRef *clg_ref); /** Declare outside function, declare as extern in header. */ diff --git a/intern/clog/clog.c b/intern/clog/clog.c index dc0229e0748..e93ba9ec2b7 100644 --- a/intern/clog/clog.c +++ b/intern/clog/clog.c @@ -492,6 +492,14 @@ static void CLG_ctx_type_filter_include(CLogContext *ctx, const char *type_match clg_ctx_type_filter_append(&ctx->filters[1], type_match, type_match_len); } +static void CLG_ctx_level_set(CLogContext *ctx, int level) +{ + ctx->default_type.level = level; + for (CLG_LogType *ty = ctx->types; ty; ty = ty->next) { + ty->level = level; + } +} + static CLogContext *CLG_ctx_init(void) { CLogContext *ctx = MEM_callocN(sizeof(*ctx), __func__); @@ -569,6 +577,12 @@ void CLG_type_filter_include(const char *type_match, int type_match_len) CLG_ctx_type_filter_include(g_ctx, type_match, type_match_len); } +void CLG_level_set(int level) +{ + CLG_ctx_level_set(g_ctx, level); +} + + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c index 1baae1864bf..675f2621942 100644 --- a/source/creator/creator_args.c +++ b/source/creator/creator_args.c @@ -725,8 +725,11 @@ static int arg_handle_log_level_set(int argc, const char **argv, void *UNUSED(da if (!parse_int_clamp(argv[1], NULL, -1, INT_MAX, &G.log.level, &err_msg)) { printf("\nError: %s '%s %s'.\n", err_msg, arg_id, argv[1]); } - if (G.log.level == -1) { - G.log.level = INT_MAX; + else { + if (G.log.level == -1) { + G.log.level = INT_MAX; + } + CLG_level_set(G.log.level); } return 1; } -- cgit v1.2.3