Skip to main content

Django Database Based Automated Logging - finally solved and done in a proper way.

Project description

https://img.shields.io/pypi/v/django-automated-logging.svg https://img.shields.io/pypi/l/django-automated-logging.svg https://img.shields.io/pypi/pyversions/django-automated-logging.svg https://travis-ci.org/indietyp/django-automated-logging.svg?branch=master https://coveralls.io/repos/github/indietyp/django-automated-logging/badge.svg?branch=master Code Health https://api.codacy.com/project/badge/Grade/96fdb764fc34486399802b2f8267efcc https://img.shields.io/pypi/status/django-automated-logging.svg

Introduction

Django Automated Logging - finally solved and done in a proper way.

This package automaticially tracks, requests, model changes, requests - to a database or to another logger. It is your choice what to do.

What are the features?

  1. comes with an built-in database logger

  2. easy to setup

  3. extensible

  4. feature-rich

  5. many options to choose from - including the exclusion of certain packages, aswell as the disabling of database based logger

  6. does what it needs to do - nothing more.

  7. completely automated - nothing needs to be included from you, besides in the settings.py of your project.

  8. This python package also catches logging messages unrelated to the package itself, if this is wanted - unrelated logging statements from e.g. your code, or djangos code can be catched. You just need to include the database handler to your handlers in LOGGING and enable the module unspecified.

Setup

Everything changed needs to be changed in the settings.py

  1. In the variable MIDDLEWARE append: 'automated_logging.middleware.AutomatedLoggingMiddleware'

  2. In the variable INSTALLED_APPS append 'automated_logging'

  3. In the variable LOGGING add in the handlers section (this is only required if you want database based logging):

    'db': {
        'level': 'INFO',
        'class': 'automated_logging.handlers.DatabaseHandler',
    }
  4. In the variable LOGGING add to the loggers section (this is only required if you want database based logging):

    'automated_logging': {
        'level': 'INFO',
        'handlers': ['db'],
        'propagate': True,
    },
    'django': {
        'level': 'INFO',
        'handlers': ['db'],
        'propagate': True,
    },
  5. python3 manage.py migrate automated_logging

LOGGING attributes are just for recommondations and can be of course modified to your liking.

Configuration

You can configure the plugin by adding the variable AUTOMATED_LOGGING The defaults are, these can be partially overwritten

from logging import INFO
AUTOMATED_LOGGING = {
    'exclude': ['Session', 'automated_logging', 'basehttp'],
    'modules': ['request', 'model', 'unspecified'],
    'to_database': True,
    'loglevel': {'model': INFO,
                 'request': INFO}
}

In exclude automated_logging, basehttp and admin are recommended to be included - due to potentially having multiple redundant logging entries. Two modules are available: request and model, these can be disabled, if needed. The database integration can be - not recommended - be disabled. The logger also needs to be disabled. The loglevel does indicate on which level things should be reported to other loggers, INFO or DEBUG is recommendend. Having ERROR or CRITICAL set is possible, but not recommended.

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

django-automated-logging-3.5.1.tar.gz (15.0 kB view hashes)

Uploaded Source

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