Logging django models changes.
Project description
Django simple log
Logging model changes on every create/update/delete.
TL;DR
Install using pip:
$ pip install django-simple-log
Add to installed apps:
INSTALLED_APPS = (
...
'simple_log',
...
)
Add middleware for detecting user:
MIDDLEWARE = [
...
'simple_log.middleware.ThreadLocalMiddleware',
...
]
For django 1.8:
$ pip install django-jsonfield django-transaction-hooks
DATABASES = {
'default': {
'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',
...
}
}
Migrate:
$ python manage.py migrate
Disable logging
For temporary disable logging:
from simple_log.utils import disable_logging
with disable_logging():
# create/update/delete objects
Commands
To view which models is tracking:
$ python manage.py view_tracking_models
With option -f you can view which fields is tracking for every model.
Settings
SIMPLE_LOG_MODEL_LIST
Default: ()
List of models for logging by label: ‘app.Model’.
SIMPLE_LOG_EXCLUDE_MODEL_LIST
Default: ('admin.LogEntry', 'migrations.Migration', 'sessions.Session', 'contenttypes.ContentType', 'captcha.CaptchaStore')
List of models for exclude from logging by label: ‘app.Model’.
SIMPLE_LOG_EXCLUDE_FIELD_LIST
Default: ('id', 'last_login', 'password', 'created_at', 'updated_at')
List of field names which not track.
If you need to define which fields to track for concrete model, you can add one of the properties to model: simple_log_fields = ('id',) or simple_log_exclude_fields = ('password',).
SIMPLE_LOG_ANONYMOUS_REPR
Default: 'Anonymous'
User representation that write to log, if anonymous user changes model.
SIMPLE_LOG_NONE_USER_REPR
Default: 'System'
User representation that write to log, if user not detected (If middleware not working or if model changes from task or console).
SIMPLE_LOG_MODEL
Default: 'simple_log.SimpleLog'
Model for writing logs. If you want to define your own model, you should inheritance from simple_log.SimpleLogAbstract and change this setting.
If you need to define log model for concrete model, you can property to model: simple_log_model = 'simple_log.SimpleLog'.
SIMPLE_LOG_MODEL_SERIALIZER
Default: 'simple_log.models.ModelSerializer'
Class for serializing model fields to json.
SIMPLE_LOG_GET_CURRENT_REQUEST
Default: 'simple_log.utils.get_current_request_default'
Function that return current request. Rewrite this setting if you already have middleware for storing current request.
SIMPLE_LOG_OLD_INSTANCE_ATTR_NAME
Default: '_old_instance'
Name of attribute for storing old instance of logging object.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_simple_log-0.1.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eeeb54f818a6e790b721982b7402265785546467a2b58c3bac75c3c6594a97c7 |
|
MD5 | b8dc68b21aa0bc868eef9b7add16e1c3 |
|
BLAKE2b-256 | 9f6c52bf70ee63229116a33d60ceca396c781a327e6a58f24ea4cfe5fa595138 |