Подтвердить что ты не робот

Хранить сообщения журнала Django в базе данных?

Django (веб-инфраструктура python) использует систему регистрации python для хранения журналов.

Есть ли простой способ хранить сообщения журнала в базе данных, а затем разрешать пользователям администратора просматривать их через Интернет? Это то, что я мог написать, но не передумал изобретать колесо. Я не хочу регистрировать исключения, но сообщения типа info/debug/notice, которые я добавил в код.

В идеале я хотел бы иметь возможность хранить метаданные о сообщении журнала, как это было сделано (например, удаленный IP-адрес, пользовательский агент, идентификатор процесса wsgi и т.д.), а затем фильтровать/просматривать на основе этого (т.е. показывать мне все сообщения журнала с этого IP-адреса за последние 24 часа). Кто-нибудь сделал это?

4b9b3361

Ответ 1

Просто используйте Sentry. Raven, элемент функции Django перехватывает структуру ведения журнала, поэтому, помимо сбора ошибок из вашего приложения, любые пользовательские сообщения журнала должен также отображаться.

Ответ 2

Помимо очевидного выбора Sentry, для упражнений есть хорошая статья в блоге под названием " Создание собственного обработчика журналов, который регистрируется на моделях баз данных в django" в блоге Джеймса Лин", в котором кратко объясняется, как это сделать, используя вторую базу данных с образцами кода.

Код адаптирован из стандартного Python RotatingFileHandler:

... RotatingFileHandler позволяет указать, какой файл следует записывать и поворачивать файлы, поэтому мой DBHandler также должен указывать, какую модель вставить и указать истечение в настройках и, самое главное, в автономном приложении.

Это также можно легко адаптировать для использования одного db.

Ответ 3

попробуйте django-запросы. Я пробовал это, и в основном он просто помещает журналы запросов в таблицу, называемую запросами.