int __log_limiter_pass_log(const char* tag, int prio);
-int __configure_limiter(struct log_config *config, int default_limiter);
+int __log_limiter_create(struct log_config *config);
#ifdef __cplusplus
}
return DLOG_ERROR_NOT_PERMITTED; // LCOV_EXCL_LINE
}
+static void __configure_limiter(struct log_config *config)
+{
+ assert(config);
+
+ if (!limiter)
+ return;
+
+ limiter = __log_limiter_create(config);
+}
+
static int __configure_backend(struct log_config *config)
{
assert(config);
plog = log_config_get_int(config, "plog", DEFAULT_CONFIG_PLOG);
debugmode = log_config_get_int(config, "debugmode", DEFAULT_CONFIG_DEBUGMODE);
fatal_assert = access(DEBUGMODE_FILE, F_OK) != -1;
- limiter = __configure_limiter(config, DEFAULT_CONFIG_LIMITER);
+ limiter = log_config_get_int(config, "limiter", DEFAULT_CONFIG_LIMITER);
}
/**
if (!__configure_backend(&config))
goto failure;
+ __configure_limiter(&config);
+
log_config_free(&config);
return;
}
// LCOV_EXCL_STOP
-int __configure_limiter(struct log_config *config, int default_limiter)
+int __log_limiter_create(struct log_config *config)
{
assert(config);
- int enabled = log_config_get_int(config, "limiter", default_limiter);
- if (!enabled)
- return 0;
-
log_config_foreach(config, __config_iteration, NULL); // LCOV_EXCL_LINE
return (__log_limiter_initialize() == 0); // LCOV_EXCL_LINE