Состав модуля

Логгер действий пользователя в системе.

datalogging Логгер действий пользователя в системе.
datalogging.api
datalogging.app_meta
datalogging.dbrouters
datalogging.enums
datalogging.helpers
datalogging.management.commands.datalogging_compress
datalogging.middleware
datalogging.models
datalogging.signals

api

datalogging.api.filter_events(**kw)

Фильтрация по записям лолга.

Примечание

Не предусмотрена работа с NoSQL.

Если необходимо произвести фильтрацию по данным находящимся в в полях context_data или object_snapshot. То необходимо использовать префиксы _context и _snapshot соответственно.

filter_events(
    object_type='enterprise.Enterprise',
    system_type=SystemsEnum.MAIN_APPLICATION,
    _context__diff__name='Учреждение №666',
    _context__ent='455',
)
datalogging.api.get_events_by_token(request_token)

Получение записей лога по их общему токену

datalogging.api.get_request()

Получение текущего запроса.

datalogging.api.get_request_token()

Получение токена текущего запроса.

datalogging.api.get_user_ip()

Получение IP текущего пользователя.

Return str or None:
 Если не удалось получить IP вернет None

app_meta

dbrouters

class datalogging.dbrouters.DataLoggerRouter

Роутер не позволяет создавать связи с моделью лога.

allow_relation(obj1, obj2, **hints)

Метод контролируюий факт создания связи между обектами. Отсекаются связи создаваемые с моделяи данного модуля.

allow_syncdb(db, model)

Метод регулирующий возможность инициализации моделей.

db_for_read(model, **hints)

Выбор БД для чтения. В данном методе происходит проверка на заданное имя модели и в случаем если модель принадлежит данному модулю, для нее используются отдельные настройки

db_for_write(model, **hints)

Выбор БД для записи. Применяются те же правила, что и при чтения из базы.

class datalogging.dbrouters.NotUseDataLoggerDBRouter

Роутер запрещает создание таблиц в базе для логгера.

allow_syncdb(db, model)

Запрет создания таблиц в базе логгера

enums

class datalogging.enums.ConfigurableEnum

Метакласс автозагрузки типов перечислений.

Автозагрузка типов осуществляется из settings.py проекта, причем данные должны являться словарем с кортежами в качестве значений. Наименование параметра должно начинаться с приставки “DATALOGGER”. Пример:

DATALOGGER_EVENT_TYPE = {
    'SYSTEM': ('se', u'Системное событие'),

}

После инициализации класса, можно вызывать как обычный аттрибут. И в целом класс используется как обычное перечисление. Пример:

print EventType.SYSTEM // 'se'
class datalogging.enums.EventCode

Перечисление кодов событий.

Пример возможных кодов: - (insert, Добавление) - (delete, Удаление)

class datalogging.enums.EventType

Перечисление типов событий.

Пример возможных типов: - (se, Системное событие) - (lse, Юридически важное событие)

class datalogging.enums.SystemsEnum

Перечисление сред логирования.

Пример возможных значений: - (‘scheduled_task’, u’Задача по расписанию’) - (‘ws’, u’Web-сервис’)

helpers

datalogging.helpers.get_snapshot(instance)

Получение снимка состояния экземпляра модели

datalogging.helpers.is_server_mode()

Определение режима работы сервера.

datalogging.helpers.memorize_user(user)

Запоминание пользователя в текущем треде.

datalogging.helpers.only_server_mode(func)

Предотвращение запуска логгера в шеле

datalogging.helpers.remember_user()

Вспоминаем пользователя

managers

middleware

class datalogging.middleware.CaptureRequestMiddleware

Middleware сохраняющее текущий request.

В последующем request используется для получения ряда параметров необходимых для логирования действий ( например ip пользователя ).

class datalogging.middleware.RequestTokenMiddleware

Middleware создающее токен для текущего запроса.

Токен в последующем устаналвивается во все возникающие события в логгере, таким образом можно просмотреть/отследить цепочку событий возникших во время запроса.

model

signals

datalogging_compress

class datalogging.management.commands.datalogging_compress.Command

Класс менежд-команды.

handle(*args, **options)

Метод обрабатыюващий команду. На входе ожидаются только именованые параметры переданные из командной строки, в частности options[‘reset’] и options[‘destination’].