pythonpython-3.xloggingpython-logging

How to list all existing loggers using python.logging module


Is there a way in Python to get a list of all defined loggers?

I mean, does something exist such as logging.getAllLoggers() which would return a list of Logger objects?

I searched the python.logging documentation but couldn't find such a method.


Solution

  • Loggers are held in a hierarchy by a logging.Manager instance. You can interrogate the manager on the root logger for the loggers it knows about.

    import logging
    
    loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
    

    Calling getLogger(name) ensures that any placeholder loggers held by loggerDict are fully initialized when they are added to the list.