#!/usr/bin/python # Copyright (C) 2011 Mathieu Trudel-Lapierre import dbus import argparse bus = dbus.SystemBus() parser = argparse.ArgumentParser( description="Interface to easily control logging levels for NetworkManager, ModemManager, and wpasupplicant." ) # NM options parser.add_argument( "--nm", dest="do_set_nm_logging", action="store", help="modify log level for NetworkManager (debug, info, etc.)", ) parser.add_argument( "--domains", dest="log_domains", action="store", default=[], nargs="+", help='log "domains" to use with NetworkManager (HW, CORE, etc.)', ) # MM options parser.add_argument( "--mm", dest="do_set_mm_logging", action="store", help="modify log level for ModemManager (debug, info, etc.)", ) # wpasupplicant options parser.add_argument( "--wpa", dest="do_set_wpa_logging", action="store", help="modify log level for wpasupplicant (debug, msgdump, info, etc.)", ) args = parser.parse_args() if args.do_set_nm_logging: # print args.log_domains dom_msg = "" if args.log_domains: dom_msg = " for domains: " + ",".join(args.log_domains) print( "Setting NetworkManager log level to '" + args.do_set_nm_logging + "'" + dom_msg ) nm_bus = bus.get_object( "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager" ) nm = dbus.Interface(nm_bus, dbus_interface="org.freedesktop.NetworkManager") nm.SetLogging(args.do_set_nm_logging, ",".join(args.log_domains)) if args.do_set_mm_logging: print("Setting ModemManager log level to '" + args.do_set_mm_logging + "'") mm_bus = bus.get_object( "org.freedesktop.ModemManager", "/org/freedesktop/ModemManager" ) mm = dbus.Interface(mm_bus, dbus_interface="org.freedesktop.ModemManager") mm.SetLogging(args.do_set_mm_logging) if args.do_set_wpa_logging: print("Setting wpa_supplicant log level to '" + args.do_set_wpa_logging + "'") if "debug" in args.do_set_wpa_logging or "msgdump" in args.do_set_wpa_logging: print("Enabling timestamps for wpasupplicant debugging logs") use_timestamps = dbus.Boolean(True, variant_level=1) else: print("Disabling timestamps for wpasupplicant debugging logs") use_timestamps = dbus.Boolean(False, variant_level=1) wpa_bus = bus.get_object("fi.w1.wpa_supplicant1", "/fi/w1/wpa_supplicant1") wpa_properties = dbus.Interface( wpa_bus, dbus_interface="org.freedesktop.DBus.Properties" ) wpa_properties.Set("fi.w1.wpa_supplicant1", "DebugTimestamp", use_timestamps) wpa_properties.Set( "fi.w1.wpa_supplicant1", "DebugLevel", dbus.String(args.do_set_wpa_logging, variant_level=1), )