Issue #12718: Add documentation on using custom importers.

This commit is contained in:
Vinay Sajip 2011-08-11 13:39:52 +01:00
parent 93e6a3d28f
commit 5088b504be
1 changed files with 25 additions and 0 deletions

View File

@ -516,6 +516,31 @@ the system will attempt to retrieve the value from
to ``config_dict['handlers']['myhandler']['mykey']['123']`` if that to ``config_dict['handlers']['myhandler']['mykey']['123']`` if that
fails. fails.
.. _logging-import-resolution:
Import resolution and custom importers
""""""""""""""""""""""""""""""""""""""
Import resolution, by default, uses the builtin :func:`__import__` function
to do its importing. You may want to replace this with your own importing
mechanism: if so, you can replace the :attr:`importer` attribute of the
:class:`DictConfigurator` or its superclass, the
:class:`BaseConfigurator` class. However, you need to be
careful because of the way functions are accessed from classes via
descriptors. If you are using a Python callable to do your imports, and you
want to define it at class level rather than instance level, you need to wrap
it with :func:`staticmethod`. For example::
from importlib import import_module
from logging.config import BaseConfigurator
BaseConfigurator.importer = staticmethod(import_module)
You don't need to wrap with :func:`staticmethod` if you're setting the import
callable on a configurator *instance*.
.. _logging-config-fileformat: .. _logging-config-fileformat:
Configuration file format Configuration file format