1

У меня есть приложение Django, работающее на fastcgi, и когда возникает исключение, кажется, что оно обрывается в журналах error.log:

2012/06/10 19:25:55 [error] 1416#0: *19219 FastCGI sent in stderr: "Traceback (most recent call last):
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 574, in run
    protocolStatus, appStatus = self.server.handler(self)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 1159, in handler
    result = self.application(environ, start_response)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 273, in __call__
    response = self.get_response(request)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/core/handlers/base.py", line 209, in handle_uncaught_exception
    'request':request
  File "/usr/local/lib/python2.7/logging/__init__.py", line 1154, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/usr/local/lib/python2.7/logging/__init__.py", line 1246, in _log
    self.handle(record)
  File "/usr/local/lib/python2.7/logging/__init__.py", line 1256, in handle
    self.callHandlers(record)
  File "/usr/local/lib/python2.7/logging/__init__.py", line 1293, in callHandlers
    hdlr.handle(record)
  File "/usr/local/lib/python2.7/logging/__init__.py", line 740, in handle
    self.emit(record)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/utils/log.py", line 101, in emit
    html_message=html_message)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/core/mail/__init__.py", line 96, in mail_admins
    mail.send(fail_silently=fail_silently)
  File "/home/deploy/.virtualenv/mediapop/lib/python2.7/site-packages/django/core/mail/message.py", line 251, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/deploy/.virtualenv/mediapop/li

Могу ли я исправить это, чтобы у меня была полная трассировка стека?

1 ответ1

2

Я рекомендую хранить журнал ошибок вашего веб-сервера и журнал ошибок вашего приложения отдельно. Это аккуратно разделяет два слоя вашего стека, поскольку журналы веб-сервера будут содержать ошибки уровня http, а журнал приложения будет содержать исключения, генерируемые вашим кодом и другими пользовательскими журналами, которые вы генерируете.

В этом посте есть больше о регистрации ошибок Django, включая рекомендации по другим опциям для записи ваших следов стека Django.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .