django-db-logger

Django logging in database


License
MIT
Install
pip install django-db-logger==0.1.8rc1

Documentation

django-db-logger

https://travis-ci.org/CiCiUi/django-db-logger.svg?branch=master

Django logging in database. For large projects please use Sentry

Screenshot

https://ciciui.github.io/django-db-logger/static/img/django-db-logger.png

Dependency

  • Django>=1.9
  • Python 2.7+/3.6+

License

WTFPL

Quick start

  1. Install
pip install django-db-logger
  1. Add "django_db_logger" to your INSTALLED_APPS setting like this
INSTALLED_APPS = (
    ...
    'django_db_logger',
)
  1. Add handler and logger to LOGGING setting like this
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(asctime)s %(message)s'
        },
    },
    'handlers': {
        'db_log': {
            'level': 'DEBUG',
            'class': 'django_db_logger.db_log_handler.DatabaseLogHandler'
        },
    },
    'loggers': {
        'db': {
            'handlers': ['db_log'],
            'level': 'DEBUG'
        },
        'django.request': { # logging 500 errors to database
            'handlers': ['db_log'],
            'level': 'ERROR',
            'propagate': False,
        }
    }
}
  1. Run python manage.py migrate to create django-db-logger models.
  2. Use django-db-logger like this
import logging
db_logger = logging.getLogger('db')

db_logger.info('info message')
db_logger.warning('warning message')

try:
    1/0
except Exception as e:
    db_logger.exception(e)

Options

  1. DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE: integer. list per page in admin view. default 10
  2. DJANGO_DB_LOGGER_ENABLE_FORMATTER: boolean. Using formatter options to format message. True or False, default False

Build your own database logger 🔨

  1. Create a new app and add it to INSTALLED_APPS
  2. Copy files django-db-logger/models.py, django-db-logger/admin.py, django-db-logger/db_log_handler.py to the app folder
  3. Replace DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE in admin.py with an integer
  4. Replace DJANGO_DB_LOGGER_ENABLE_FORMATTER in db_log_handler.py with True or False. Remove MSG_STYLE_SIMPLE, it was not used.
  5. Replace logger class django_db_logger.db_log_handler.DatabaseLogHandler in your Settings with the new logger class
  6. Customize the looger to meet your needs. 🍺