Django - traceback com usuário logado

Created: Jan. 1, 2010, 4 a.m.
Update: Oct. 29, 2020, 8:01 p.m.
Download: media/download/extra.py
A idéia é customizar o TRACEBACK do django para receber informações adicionais, tipo, usuário logado, id, nome e etc.

Faz um tempo que estou para escrever essa dica e agora chegou a hora,  pois projetos estão online e preciso de mais informações quando um erro acontece! :| Quase sempre preciso saber qual usuário e organização está logado por  motivos de feedback ou se o mesmo está fazendo coisa errada, tentando  acesso indevido ou coisas do tipo. A idéia aqui é customizar o TRACEBACK  do django para receber essas informações adicinonais sem que acontece um erro.

Ambiente:
Debian 6
Django version 1.4.34
Python2.7

Adicionar o conteúdo nos arquivos abaixo:

settings.py

MIDDLEWARE_CLASSES = (
    ...
    '<project_name>.extra.UserTracebackMiddleware',
    ...
)


Criar arquivo extra.py na raiz do projeto com o seguinte conteúdo ou fazer download.

# -*- coding: utf-8 -*-
class UserTracebackMiddleware(object):
    """
    Adds user to request context during request processing, so that they
    show up in the error emails.
    """
    def process_exception(self, request, exception):
        if request.user.is_authenticated()
            request.META['AUTH_USER'] = str(request.user.username)
        else:
            request.META['AUTH_USER'] = "Anonymous User"

Traceback
...

META:{'AUTH_USER': 'rafaela';}
...

Tiago de Souza Moraes - teago.futuria.com.br - 2020 // CSS by UIKIT CSS