From 55850febb2fe521753ea851125887b2f8eac843a Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Mon, 27 Feb 2023 17:39:27 +0100 Subject: Change the logic to define log levels --- src/log.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/log.c b/src/log.c index d3fe0a7..0bb1058 100644 --- a/src/log.c +++ b/src/log.c @@ -92,23 +92,25 @@ remove_ext(const char *filename) return name; } + */ /* Parses the configuration line to get log level and the context */ static int log_get_level(const char *tag, char *conf_key, char *conf_value) { int default_level = DBG_LVL; - const char *context; const char *base_context = "logging.level"; + /* Plus 2 because we need a dot and string terminator */ + char *context = calloc(sizeof(char), strlen(base_context) + strlen(tag) + 2); - if (strends(conf_key, "level") != 0) - return DBG_LVL; + strcat(context, base_context); + strcat(context, "."); + strcat(context, tag); - context = remove_ext(tag); - - if (strcmp(conf_key, "logging.level.default")) { + if (strcmp(conf_key, base_context) == 0) { default_level = log_parse_level_property(conf_value); - } else if (strstarts(conf_key, "file.") == 0 && strends(conf_key, context) == 0) { + } else if (strcmp(conf_key, context) == 0) { + return log_parse_level_property(conf_value); } return default_level; @@ -127,11 +129,9 @@ log_init(Log *log) while (fgets(buff, BUFF_SIZE, file) != NULL && buff[0] != '#') { - sscanf(buff, "%[^=]=%s", conf_key, conf_value); - if (strends(conf_key, "level") == 0) { - log->level = log_get_level(log->tag, conf_key, conf_value); - } + sscanf(buff, "%[^=]=%s", conf_key, conf_value); + log->level = log_get_level(log->tag, conf_key, conf_value); } fclose(file); -- cgit v1.2.3