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
Add to any __init__.py:
import simple_log
# For track all registered applications, including third-party
simple_log.register()
# Or for concrete model
simple_log.register(Model)
# Or multiple models
simple_log.register(Model, AnotherModel)
# For define log model
simple_log.register(Model, AnotherModel, log_model=CustomLogModel)
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: ()
If set, than simple_log.register() register only models in the list.
If you use simple_log.register(Model), this setting will be ignored.
SIMPLE_LOG_EXCLUDE_MODEL_LIST
Default: ('admin.LogEntry', 'migrations.Migration', 'sessions.Session', 'contenttypes.ContentType', 'captcha.CaptchaStore')
If set, than simple_log.register() register every model except in the list.
If you use simple_log.register(Model) or SIMPLE_LOG_MODEL_LIST, this setting will be ignored.
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 can inheritance from simple_log.SimpleLogAbstract and change this setting.
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'
Attribute’s name 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.0.8-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43e71820a976cf6b40a4bc4bb0863716867a9078850f5b67a9a508663d2b0f20 |
|
MD5 | 8424929d1bb9f567c2bbf1af92f02066 |
|
BLAKE2b-256 | c725a36435c8f2c64fa4f324d2bc606092b50e07fbd634067bb0813a56e693cb |