X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=daemon.c;h=d8f598bef0c2eb1709fa46169c314e17a212d7b8;hb=b0a87fd7b5aeb8007afd3ac25d8548543d42080c;hp=dd5420a6eab92de518e3af60ea49d094ae5db6bb;hpb=8af63afe0ce633fd488f0669614e2d08680f90bc;p=paraslash.git diff --git a/daemon.c b/daemon.c index dd5420a6..d8f598be 100644 --- a/daemon.c +++ b/daemon.c @@ -64,18 +64,24 @@ static void daemon_set_default_log_colors(void) */ void daemon_set_log_color_or_die(const char *arg) { + unsigned ll; + const char * const sev[] = {SEVERITIES}; char *p = strchr(arg, ':'); - int ret, ll; if (!p) goto err; - ret = get_loglevel_by_name(arg); - if (ret < 0) - goto err; - ll = ret; - p++; - color_parse_or_die(p, me->log_colors[ll]); - return; + for (ll = 0; ll < NUM_LOGLEVELS; ll++) { + const char *name = sev[ll]; + /* + * Parse only the first part of the string so that, for + * example, the argument "info:something_else" is recognized. + * Note that the string comparison is performed + * case-insensitively. + */ + if (strncasecmp(arg, name, strlen(name))) + continue; + return color_parse_or_die(p + 1, me->log_colors[ll]); + } err: PARA_EMERG_LOG("%s: invalid color argument\n", arg); exit(EXIT_FAILURE); @@ -134,16 +140,29 @@ void daemon_set_logfile(const char *logfile_name) } /** - * Suppress log messages with severity lower than the given loglevel. + * Control the verbosity for logging. * - * \param loglevel The smallest level that should be logged. + * This instructs the daemon to not log subsequent messages whose severity is + * lower than the given value. + * + * \param loglevel The new log level. */ -void daemon_set_loglevel(const char *loglevel) +void daemon_set_loglevel(int loglevel) { - int ret = get_loglevel_by_name(loglevel); + assert(loglevel >= 0); + assert(loglevel < NUM_LOGLEVELS); + me->loglevel = loglevel; +} - assert(ret >= 0); - me->loglevel = ret; +/** + * Get the current log level of the daemon. + * + * \return Greater or equal than zero and less than NUM_LOGLEVELS. This + * function never fails. + */ +int daemon_get_loglevel(void) +{ + return me->loglevel; } /** @@ -263,9 +282,9 @@ void daemon_close_log(void) } /** - * fopen() the logfile in append mode. + * Open the logfile in append mode. * - * \return Either succeeds or exits. + * This function either succeeds or exits. */ void daemon_open_log_or_die(void) {