를 사용하여 우리는 불쾌한 문제가 있습니다. 셸에서, 또는 경우 runserver 명령 또는 mod_wsgi에 장고에 동일한 코드를 실행 할 때의 동작은 올바른 :다른 행동 mod_python을
import logging
logger = logging.getLogger('site-errors')
logging.debug('logger=%s' % (logger.__dict__))
logging.debug('logger.parent=%s' % (logger.parent.__dict__))
logger.error('some message that is not logged.')
우리 다음 로그 :
2009-05-28 10 36 : 43740, DEBUG, error_middleware.py : 31 [로거 = { '이름' '사이트 오류', '부모'0x85f8aac > '핸들러'에서 < logging.RootLogger 인스턴스 [] '레벨' 0 '관리자'1 '필터': []}]
,617 0x85f8aec >에서 < logging.Manager 인스턴스 '전파'0 '비활성화'2009-05-28 DEBUG, error_middleware.py : 32, [logger.parent = { 'name': '루트', '부모': 없음, '처리자': [< 로깅 10 '비활성화': 0x8ec612c >, 0x8ec616c >] '레벨'에 < logging.handlers.RotatingFileHandler 인스턴스에서 .StreamHandler 인스턴스 0 '전파'1 "필터"[]}]
아이디 로거 '사이트 오류'에 대한 핸들러 또는 레벨이 설정되지 않았습니다.
:MONITOR_LOGGING_CONFIG = ROOT + 'error_monitor_logging.conf'
import logging
import logging.config
logging.config.fileConfig(MONITOR_LOGGING_CONFIG)
if CONFIG == CONFIG_DEV:
DB_LOGLEVEL = logging.INFO
else:
DB_LOGLEVEL = logging.WARNING
두 번째 문제는 우리는 또한 그 error_middleware.py 같은 폴더에있는 __init__.py에서 사용자 지정 처리기를 추가한다는 것입니다 :
로깅 구성은 settings.py에서 이루어집니다
import logging
from django.conf import settings
from db_log_handler import DBLogHandler
handler = DBLogHandler()
handler.setLevel(settings.DB_LOGLEVEL)
logging.root.addHandler(handler)
로깅에서 사용자 지정 처리기를 볼 수 없습니다!
누군가가 문제가있는 아이디어가 있으면 알려 주시기 바랍니다. 추가 정보를 요구하는 것을 주저하지 마십시오. 그것은 확실히 문제를 해결하는 데 도움이 될 것입니다.
+1 to mod_wsgi. wsgi 응용 프로그램은 다른 서버 소프트웨어에 배포 할 수 있다는 것을 의미하며 mod_python은 특히 빠릅니다. – nosklo