Звучит так, будто вы хотите создать базовую систему ведения журналов, которая выводит на веб-страницу.
Таким образом, вы можете написать что-то простое, например, приложение systemevents
, которое создает запись Event
каждый раз, когда что-тобывает на сайте.Вы бы добавили сигнальный хук, чтобы где-нибудь на остальной части сайта вы могли кодировать что-то вроде:
from systemevents.signals import record_event
...
try:
# code goes here
except Exception, inst:
record_event("Error occurred while taunting %s: %s" % (obj, inst,), type="Error")
else:
record_event("Successfully taunted %s" % (obj, ), type="Success")
Тогда вы можете довольно легко создать представление, которое перечисляет эти события.
Однако имейте в виду, что это добавляет уровень сложности, который очень проблематичен.Что делать, если ошибка лежит в вашей базе данных?Затем каждый раз, когда вы пытаетесь записать событие ошибки, возникает другая ошибка!
Гораздо лучше использовать что-то вроде встроенной системы ведения журнала для создания текстового файла журнала, а затем создать что-то, что может импортировать этотекстовый файл и выложите его в несколько более удобочитаемом виде.
Еще один совет: чтобы изменить способ обработки исключений в Django, необходимо написать пользовательское представление для 500 ошибок .Если вы используете systemevents
, вы напишите что-то вроде:
from django.views.defaults import server_error
def custom_error_view(request)
try:
import sys
type, value, tb = sys.exc_info()
error_message = "" # create an error message from the values above
record_event("Error occurred: %s" % (error_message,), type="Error")
except Exception:
pass
return server_error(request)
Обратите внимание, что ни один из этого кода не был проверен на правильность.Это просто руководство.