aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-02-27 17:39:27 +0100
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-02-27 17:39:27 +0100
commit55850febb2fe521753ea851125887b2f8eac843a (patch)
treee722cf49b4ce36df4fc669ea5e48bb27cf013c46
parent98892499e30bef3c363caaa6d7070e5be6c29925 (diff)
downloadlog-55850febb2fe521753ea851125887b2f8eac843a.tar.gz
log-55850febb2fe521753ea851125887b2f8eac843a.zip
Change the logic to define log levels
-rw-r--r--src/log.c22
1 files 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);