Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset eab3d04 in mainline for uspace/lib/c/generic/io/log.c


Ignore:
Timestamp:
2012-08-16T11:36:54Z (9 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master
Children:
494f417
Parents:
1c67b41
Message:

Allow specifying of log level as a name

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/log.c

    r1c67b41 reab3d04  
    5252        "note",
    5353        "debug",
    54         "debug2"
     54        "debug2",
     55        NULL
    5556};
    5657
     
    179180}
    180181
     182int log_level_from_str(const char *name, log_level_t *level_out)
     183{
     184        log_level_t level = LVL_FATAL;
     185
     186        while (log_level_names[level] != NULL) {
     187                if (str_cmp(name, log_level_names[level]) == 0) {
     188                        if (level_out != NULL)
     189                                *level_out = level;
     190                        return EOK;
     191                }
     192                level++;
     193        }
     194
     195        /* Maybe user specified number directly. */
     196        char *end_ptr;
     197        int level_int = strtol(name, &end_ptr, 0);
     198        if ((end_ptr == name) || (str_length(end_ptr) != 0))
     199                return EINVAL;
     200        if (level_int < 0)
     201                return ERANGE;
     202        if (level_int >= (int) LVL_LIMIT)
     203                return ERANGE;
     204
     205        if (level_out != NULL)
     206                *level_out = (log_level_t) level_int;
     207
     208        return EOK;
     209}
     210
    181211/** Initialize the logging system.
    182212 *
Note: See TracChangeset for help on using the changeset viewer.