diff options
author | Nathan Williams <njw@chromium.org> | 2011-06-23 17:33:30 -0400 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2011-06-30 12:25:02 -0500 |
commit | 1b73fa154160a51634633a4bfd886aa1d27e72b3 (patch) | |
tree | 625fe5c11cc0ba19a7f5dc98cd74daea2a71eea3 /src/mm-log.c | |
parent | b7820cf6e15eb245d4726f8cfbe20ce24466188b (diff) |
Add a DBus interface for setting the log level.
Lifted almost entirely from similar code in NetworkManager.
BUG=chromium-os:15197
TEST='dbus-send --print-reply --system --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.ModemManager.SetLogging string:DEBUG'
Also try valid log levels 'ERR', 'WARN', 'INFO', and an invalid log level, such as 'ABCDE'.
Change-Id: I2bddcd0319f4966dd293b119f68e7cc1697949b7
Reviewed-on: http://gerrit.chromium.org/gerrit/3134
Tested-by: Nathan J. Williams <njw@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Diffstat (limited to 'src/mm-log.c')
-rw-r--r-- | src/mm-log.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/mm-log.c b/src/mm-log.c index 779afe72..f99f51f5 100644 --- a/src/mm-log.c +++ b/src/mm-log.c @@ -163,6 +163,24 @@ log_handler (const gchar *log_domain, } gboolean +mm_log_set_level (const char *level, GError **error) +{ + gboolean found = FALSE; + const LogDesc *diter; + + for (diter = &level_descs[0]; diter->name; diter++) { + if (!strcasecmp (diter->name, level)) { + log_level = diter->num; + found = TRUE; + break; + } + } + if (!found) + g_set_error (error, 0, 0, "Unknown log level '%s'", level); + return found; +} + +gboolean mm_log_setup (const char *level, const char *log_file, gboolean show_timestamps, @@ -170,23 +188,8 @@ mm_log_setup (const char *level, GError **error) { /* levels */ - if (level && strlen (level)) { - gboolean found = FALSE; - const LogDesc *diter; - - for (diter = &level_descs[0]; diter->name; diter++) { - if (!strcasecmp (diter->name, level)) { - log_level = diter->num; - found = TRUE; - break; - } - } - - if (!found) { - g_set_error (error, 0, 0, "Unknown log level '%s'", level); - return FALSE; - } - } + if (level && strlen (level) && !mm_log_set_level (level, error)) + return FALSE; if (show_timestamps) ts_flags = TS_FLAG_WALL; |