monitoring dbus messages by python
===

I'm trying to make a python application which reads the messages going through DBus, something giving the same output of the bash **dbus-monitor**. According to what I got from my searching the code should be quite plain and clear, something like:

    import dbus, gobject
    from dbus.mainloop.glib import DBusGMainLoop
    
    def msg_cb(bus, msg):
    	args = msg.get_args_list()
    	print "Notification from '%s'" % args[0]
    	print "Summary: %s" % args[3]
    	print "Body: %s", args[4]
    
    if __name__ == '__main__':
    	DBusGMainLoop(set_as_default=True)
    	bus = dbus.SessionBus()
    
    	string = "interface='org.freedesktop.Notifications',member='Notify'"
    	bus.add_match_string(string)
    	bus.add_message_filter(msg_cb)
    
    	mainloop = gobject.MainLoop ()
    	mainloop.run ()
But launching it I only get the message returned by DBus saying the application is connected, differently from what I get if I execute the bash command:

    dbus-monitor --session interface='org.freedesktop.Notifications',member='Notify'

In this case I can watch all the messages matching the filter condition. 
Does anybody please help me to understand where I fail?
Thanks