python – 无法使用Django dictConfig注册自定义日志记录处理程序类
发布时间:2020-05-23 20:58:41 所属栏目:Python 来源:互联网
导读:我的目标是创建一个“日志”应用程序,除了我的主应用程序,将用于几个自定义处理程序类,过滤器等,以及其他错误和统计报告.但是当我为我的Django项目运行开发服务器时,我收到错误: File /Library/Python/2.7/site-packages/Django-1.3-py2.7.egg/django/conf/_
|
我的目标是创建一个“日志”应用程序,除了我的主应用程序,将用于几个自定义处理程序类,过滤器等,以及其他错误和统计报告.但是当我为我的Django项目运行开发服务器时,我收到错误: 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. 解决方法看起来你正在进行循环导入.您无法在自身导入settings.py的模块中定义处理程序类它记录在https://docs.djangoproject.com/en/dev/topics/logging/#topic-logging-parts-handlers(搜索’循环进口’) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – matplotlib中的绿色到红色的colormap,以数据的中
- Python实现快速多线程ping的方法
- 运行bash命令在Python3中复制粘贴文件是否可靠?
- Python是否具有java.lang.Math.nextUp的等价物?
- python实现TCP服务器端与客户端的方法详解
- python用10行代码实现对黄色图片的检测功能
- 有没有办法使collection.Counter(Python2.7)知道它的输入列
- 如何在flask_sqlalchemy中使用PostgreSQL的“INSERT … ON
- Python shutil模块用法实例分析
- 人工智能其实也没有那么难嘛!TensorFlow了解一下?最详细教
