के साथ कस्टम लॉगिंग हैंडलर क्लास पंजीकृत नहीं कर सकता मेरा लक्ष्य मेरे मुख्य ऐप के अलावा "लॉग" ऐप बनाना है, जिसका उपयोग कई कस्टम हैंडलर कक्षाओं, फ़िल्टर इत्यादि, और अन्य त्रुटि और स्टेट रिपोर्टिंग के लिए किया जाएगा। ,Django dictCigfig
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,
},
}
}
मेरी "लॉग ऑन" के लेआउट एप्लिकेशन बहुत सरल है:
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'
सेटिंग में मेरे काटना निर्देश की तरह दिखता है: लेकिन जब मेरे Django परियोजना के लिए देव सर्वर चल रहा है, मैं त्रुटि प्राप्त और वर्तमान में:
log/
__init__.py
handlers.py
models.py
models.py एक मॉडल, LogHandler शामिल हैं:
import logging
from models import LogRecord
class db_handler(logging.Handler):
def emit(self, record):
....
....
त्रुटि, जहाँ तक मैं बता सकता हूँ, मॉडल से की चर्चा करते हुए आयात LogRecord लाइन:
from django.db import models
class LogRecord(models.Model):
....
....
और handlers.py एक भी हैंडलर शामिल हैं। मैंने project.log.models, और log.models का उपयोग करने का प्रयास किया है, लेकिन दोनों एक ही परिणाम उत्पन्न करते हैं। मैंने हैंडलर को models.py में ले जाने की कोशिश की है और कुछ भी आयात नहीं किया है, लेकिन मुझे एक समान त्रुटि मिल रही है कि "मॉड्यूल" में कोई विशेषता नहीं है "मॉडल"।
मेरे लॉग एप्लिकेशन मेरी इंस्टॉल किए गए एप्लिकेशन में है, और एक __ init __ .py शामिल हैं।
मैं भी यही समस्या ('परिपत्र आयात' के लिए खोज) में एक हैंडलर वर्ग को परिभाषित नहीं कर सकते हैं, तो हम इस समस्या को कैसे ठीक करूं? –
मुझे लगता है कि इसका मतलब है कि आपका लॉगिंग हैंडलर स्वयं डीजेंगो एप्लीकेशन नहीं हो सकता है। आपको सेटिंग.py से स्वतंत्र होने के लिए इसे कोड करने की आवश्यकता होगी। उदाहरण के लिए, यदि आप किसी mysql डीबी पर लॉग ऑन करना चाहते हैं, तो आपको कोड स्वयं लिखना होगा, और सीधे django के ORM का उपयोग नहीं करना होगा। – hoskeri
मैं http://stackoverflow.com/questions/12452904/custom-python-database-logger-having-circular-import/12468007#12468007 के आसपास एक काम के साथ आया था –