aboutsummaryrefslogtreecommitdiff
path: root/src/mm-log.c
diff options
context:
space:
mode:
authorNathan Williams <njw@chromium.org>2011-06-23 17:33:30 -0400
committerDan Williams <dcbw@redhat.com>2011-06-30 12:25:02 -0500
commit1b73fa154160a51634633a4bfd886aa1d27e72b3 (patch)
tree625fe5c11cc0ba19a7f5dc98cd74daea2a71eea3 /src/mm-log.c
parentb7820cf6e15eb245d4726f8cfbe20ce24466188b (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.c37
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;