您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 无法使用Django dictConfig注册自定义日志记录处理程序类

5b51 2022/1/14 8:20:14 python 字数 4766 阅读 441 来源 www.jb51.cc/python

我的目标是创建一个“日志”应用程序,除了我的主应用程序,将用于几个自定义处理程序类,过滤器等,以及其他错误和统计报告.但是当我为我的Django项目运行开发服务器时,我收到错误: File "/Library/Python/2.7/site-packages/Django-1.3-py2.7.egg/django/conf/__init__.py", line 42, in _setup

概述

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'

我在设置中的LOGGING指令如下所示:

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,}
}

我的“日志”应用程序的布局非常简单,目前:

log/
    __init__.py
    handlers.py
    models.py

models.py包含一个模型LogHandler:

from django.db import models

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

和handlers.py包含一个处理程序:

import logging

from models import LogRecord

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

据我所知,错误是指从模型导入LogRecord行.我尝试过使用project.log.models和log.models,但两者都会产生相同的结果.我也尝试将处理程序移动到models.py而不导入任何东西,但我得到一个类似的错误,说“模块”没有属性“模型”.

我的日志应用程序位于我安装的应用程序中,并包含__init__.py.

它记录在https://docs.djangoproject.com/en/dev/topics/logging/#topic-logging-parts-handlers(搜索’循环进口’)

总结

以上是编程之家为你收集整理的python – 无法使用Django dictConfig注册自定义日志记录处理程序类全部内容,希望文章能够帮你解决python – 无法使用Django dictConfig注册自定义日志记录处理程序类所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶