debug-helper.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/python
  2. # Copyright (C) 2011 Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
  3. import dbus
  4. import argparse
  5. bus = dbus.SystemBus()
  6. parser = argparse.ArgumentParser(description='Interface to easily control logging levels for NetworkManager, ModemManager, and wpasupplicant.')
  7. # NM options
  8. parser.add_argument('--nm', dest='do_set_nm_logging', action='store',
  9. help='modify log level for NetworkManager (debug, info, etc.)')
  10. parser.add_argument('--domains', dest='log_domains', action='store',
  11. default=[], nargs='+',
  12. help='log "domains" to use with NetworkManager (HW, CORE, etc.)')
  13. # MM options
  14. parser.add_argument('--mm', dest='do_set_mm_logging', action='store',
  15. help='modify log level for ModemManager (debug, info, etc.)')
  16. # wpasupplicant options
  17. parser.add_argument('--wpa', dest='do_set_wpa_logging', action='store',
  18. help='modify log level for wpasupplicant (debug, msgdump, info, etc.)')
  19. args = parser.parse_args()
  20. if args.do_set_nm_logging:
  21. #print args.log_domains
  22. dom_msg = ""
  23. if args.log_domains:
  24. dom_msg = " for domains: " + ','.join(args.log_domains)
  25. print "Setting NetworkManager log level to '" + args.do_set_nm_logging + "'" + dom_msg
  26. nm_bus = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
  27. nm = dbus.Interface(nm_bus, dbus_interface='org.freedesktop.NetworkManager')
  28. nm.SetLogging(args.do_set_nm_logging, ','.join(args.log_domains))
  29. if args.do_set_mm_logging:
  30. print "Setting ModemManager log level to '" + args.do_set_mm_logging + "'"
  31. mm_bus = bus.get_object('org.freedesktop.ModemManager', '/org/freedesktop/ModemManager')
  32. mm = dbus.Interface(mm_bus, dbus_interface='org.freedesktop.ModemManager')
  33. mm.SetLogging(args.do_set_mm_logging)
  34. if args.do_set_wpa_logging:
  35. print "Setting wpa_supplicant log level to '" + args.do_set_wpa_logging + "'"
  36. if 'debug' in args.do_set_wpa_logging or 'msgdump' in args.do_set_wpa_logging:
  37. print "Enabling timestamps for wpasupplicant debugging logs"
  38. use_timestamps = dbus.Boolean(True, variant_level=1)
  39. else:
  40. print "Disabling timestamps for wpasupplicant debugging logs"
  41. use_timestamps = dbus.Boolean(False, variant_level=1)
  42. wpa_bus = bus.get_object('fi.w1.wpa_supplicant1', '/fi/w1/wpa_supplicant1')
  43. wpa_properties = dbus.Interface(wpa_bus, dbus_interface='org.freedesktop.DBus.Properties')
  44. wpa_properties.Set('fi.w1.wpa_supplicant1', 'DebugTimestamp', use_timestamps)
  45. wpa_properties.Set('fi.w1.wpa_supplicant1', 'DebugLevel',
  46. dbus.String(args.do_set_wpa_logging, variant_level=1))