Posso fazer meu nginx error_log salvar todo o stacktrace?

1

Eu tenho um aplicativo Django em execução no fastcgi e quando há uma exceção, parece que ele está sendo cortado nos logs 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

Posso corrigir isso para que eu tenha o rastreamento completo da pilha?

    
por Kit Sunde 10.06.2012 / 22:03

1 resposta

2

Recomendo manter o log de erros do servidor da web e o log de erros do aplicativo separados. Isso separa nitidamente duas camadas de sua pilha, pois os logs do servidor da web conterão os erros de nível http, enquanto o log do aplicativo conterá exceções geradas pelo seu código e outro log personalizado gerado por você.

Esta postagem tem mais sobre o erro do Django logging, incluindo recomendações para outras opções para registrar seus rastreamentos de pilha do Django.

    
por 11.06.2012 / 00:53