@BogBel

Как реализовать log журнал в Django?

Собственно вот в чем дело, хочу сделать таблицу, в которой будут храниться IP пользователя
, URL, HTTP код ответа.
Интерсует как вызывать создание нового обьекта, ну и собственно модель ,которая необходима для хранения.
Спасибо.
  • Вопрос задан
  • 1369 просмотров
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
Не нужно так делать!

изучите https://docs.python.org/2/library/logging.html
Ответ написан
pinkevich
@pinkevich
Developer
Как по мне, так лучше создать декоратор в котором будет происходить запись каждого запроса в БД и его можно использовать только для нужных вьюх, а если нужно писать лог всех запросов в проекте, то лучше через middleware
Ответ написан
IP пользователя, URL, HTTP код ответа.

любой нормальный веб сервер сможет залогировать все эти параметры, и это будет быстрее чем через джангу логировать тоже самое.

Вот если вам понадобиться логировать больше информации, и которую затруднительно/невозможно собрать из веб сервера, надо будет организовать подобное со стороны джанги.
В моём проекте подобное есть и от использования в нём модуля logging мы отказались, поскольку нафиг он не нужен под наши задачи.
Есть отдельное апп, которое описывает:
  • модель данных в которой будет всё хранится(именно так логи доступа которые собираются в бд)
  • описывает миддлварь, который собственно будет собирать информацию
    • Подобное логирование, особенно средствами джанги, накладно по ресурсам, а уж при каждом запросе писать в бд ещё хуже, поэтому в мидлваре собирается словарь с минимальной необходимой информацией и клдётся в кеш.

  • конфиигурацию для роутера бд (логи доступа хранятся в отдельной бд)
  • Задачки для сентри
  1. Одна задачка каждую минуту, забирает данные из кеша, дообрабатывает их и кладёт все разом в бд.
  2. Другая дёргает раз в сутки процедуру, которая проверяет наличие партиций в бд на следующий месяц, и при необходимости создаёт оные и обновляет триггерные функции.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы