Skip to main content

Logging django models changes.

Project description

Django simple log

https://travis-ci.org/kindlycat/django-simple-log.svg?branch=master https://coveralls.io/repos/github/kindlycat/django-simple-log/badge.svg?branch=master https://img.shields.io/pypi/v/django-simple-log.svg https://img.shields.io/pypi/status/django-simple-log.svg https://img.shields.io/pypi/pyversions/django-simple-log.svg https://img.shields.io/badge/django-%3E%3D1.8-green.svg https://img.shields.io/gitter/room/nwjs/nw.js.svg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-simple-log-0.1.3.tar.gz (10.6 kB view hashes)

Uploaded Source

Built Distribution

django_simple_log-0.1.3-py2.py3-none-any.whl (17.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page