Fixed #14861 -- Moved logging config outside of Settings.__init__

Thanks donspaulding for the report and simonpercivall for the
initial patch.
This commit is contained in:
Claude Paroz 2012-09-24 22:11:42 +02:00
parent e72e22e518
commit fc69fff9ab
4 changed files with 52 additions and 44 deletions

View file

@ -345,36 +345,6 @@ This logging configuration does the following things:
printed to the console; ``ERROR`` and ``CRITICAL``
messages will also be output via email.
.. admonition:: Custom handlers and circular imports
If your ``settings.py`` specifies a custom handler class and the file
defining that class also imports ``settings.py`` a circular import will
occur.
For example, if ``settings.py`` contains the following config for
:setting:`LOGGING`::
LOGGING = {
'version': 1,
'handlers': {
'custom_handler': {
'level': 'INFO',
'class': 'myproject.logconfig.MyHandler',
}
}
}
and ``myproject/logconfig.py`` has the following line before the
``MyHandler`` definition::
from django.conf import settings
then the ``dictconfig`` module will raise an exception like the following::
ValueError: Unable to configure handler 'custom_handler':
Unable to configure handler 'custom_handler':
'module' object has no attribute 'logconfig'
.. _formatter documentation: http://docs.python.org/library/logging.html#formatter-objects
Custom logging configuration