I attempted to do what you are suggesting, but I believe there is some distinction between the root logger and the loggers that you get when you ask for things like 'pulp', or 'celery'. If those loggers were aquired before the root logger was defined, as happens here, the handlers you assign to the root logger do not seem to apply to them even with propagation set to True. I wasn't able to find solid documentation describing the behavior of root loggers in this circumstance, so I'm not sure if this is the way Python is supposed to be, or if it's not working as intended.

I did find that the file based logging config actually does this same thing that I'm doing here when it sets up logging, so I believe that the behavior I described above may be correct.