Django logging in database. For large projects please use Sentry
- Django>=3.2
 - Python 3.8+
 
WTFPL
- Install
 
pip install django-db-logger- Add "django_db_logger" to your 
INSTALLED_APPSsetting like this 
INSTALLED_APPS = (
    ...
    'django_db_logger',
)- Add handler and logger to 
LOGGINGsetting 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,
        }
    }
}- Run 
python manage.py migrateto create django-db-logger models. - Use 
django-db-loggerlike 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)- DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGE: integer. list per page in admin view. default 
10 - DJANGO_DB_LOGGER_ENABLE_FORMATTER: boolean. Using 
formatteroptions to format message.TrueorFalse, defaultFalse 
- Create a new app and add it to 
INSTALLED_APPS - Copy files 
django-db-logger/models.py,django-db-logger/admin.py,django-db-logger/db_log_handler.pyto the app folder - Replace 
DJANGO_DB_LOGGER_ADMIN_LIST_PER_PAGEinadmin.pywith an integer - Replace 
DJANGO_DB_LOGGER_ENABLE_FORMATTERin db_log_handler.py withTrueorFalse. RemoveMSG_STYLE_SIMPLE, it was not used. - Replace logger class 
django_db_logger.db_log_handler.DatabaseLogHandlerin your Settings with the new logger class - Customize the looger to meet your needs. 🍺