Kann nicht registrieren custom logging-handler-Klasse mit Django dictConfig

Mein Ziel ist, erstellen Sie eine "log" - app, abgesehen von meinem Haupt-app, die für mehrere benutzerdefinierte handler-Klassen, Filter, etc, und andere Fehler-und reporting stat. Aber beim ausführen der dev-server für meine Django-Projekt, erhalte ich die Fehlermeldung:

  File "/Library/Python/2.7/site-packages/Django-1.3-py2.7.egg/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/Library/Python/2.7/site-packages/Django-1.3-py2.7.egg/django/conf/__init__.py", line 139, in __init__
    logging_config_func(self.LOGGING)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 776, in dictConfig
    dictConfigClass(config).configure()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 575, in configure
    '%r: %s' % (name, e))
ValueError: Unable to configure handler 'db_handler': Unable to configure handler 'db_handler': 'module' object has no attribute 'models'

Meine LOGGING-Direktive in den Einstellungen sieht wie folgt aus:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': '[%(asctime)s] %(levelname)s::(%(process)d %(thread)d)::%(module)s - %(message)s'
        },
    },
    'handlers': {
        'db_handler': {
            'level': 'DEBUG',
            'class': 'Project.log.handlers.db_handler'
        },
        'file_handler': {
            'level': 'DEBUG',
            'formatter':'default',
            'class': 'logging.TimedRotatingFileHandler',
            'filename':'Custom_log',
            'when':'midnight',
            'interval':1
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['db_handler'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}

Das layout von meinem "log" - app ist ziemlich einfach, und aktuell:

log/
    __init__.py
    handlers.py
    models.py

models.py enthält ein einzelnes Modell, LogHandler:

from django.db import models

class LogRecord(models.Model):
    .... 
    ....

und handlers.py enthält eine einzige Prozedur:

import logging

from models import LogRecord

class db_handler(logging.Handler):   
    def emit(self, record):
        ....
        ....

Den Fehler, soweit ich das beurteilen kann, bezieht sich auf die von Modellen importieren LogRecord Linie. Ich habe versucht mit Projekt.log.Modelle und log.Modelle, die aber beide die gleichen Ergebnisse liefern. Ich habe auch versucht, das verschieben der hf in models.py und nicht alles importieren, aber ich bekomme eine ähnliche Fehlermeldung, dass "Modul" hat kein Attribut "Modelle".

Meine log-app ist in meinen installierten apps, und enthält eine __init__.py.

InformationsquelleAutor WilHall | 2011-08-05
Schreibe einen Kommentar