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.
Thank you in advance.
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.
If you want to include RootLogger in the list as well, do something similar to:
import logging
loggers = [logging.getLogger()] # get the root logger
loggers = loggers + [logging.getLogger(name) for name in logging.root.manager.loggerDict]
tested on Python 3.7.4