1

Trying to implement a DB logger in my Django project

but I am facing a problem in managing the logs in my DB so how can I automatically delete the old records from DB

settings.py


INSTALLED_APPS = ['django_db_logger',]

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'error': {
            'class': 'django_db_logger.db_log_handler.DatabaseLogHandler',
            'level': 'ERROR'
        },
        'console': {
            'class': 'django_db_logger.db_log_handler.DatabaseLogHandler',
            'level': 'INFO',
        },
    },
    'loggers': {
        'ERROR_LOG': {
            'handlers': ['error'],
            'propagate': True,
            'level': 'ERROR'
        },
        'INFO_LOG': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'INFO'
        }
    }
}

and also created a function in the helpers.py file for for managing the logs

helpers.py

import Logging

class Logging:

    def __init__(self,request):

        self.request = request

    def log(self, message=None):
        url =self.request.build_absolute_uri()
        logger = logging.getLogger('ERROR_LOG')
        logger.error(f'ERROR: {url} {self.request.data} {self.request.headers} {message}')

    def info(self, message=None):
        url = self.request.build_absolute_uri()
        logger = logging.getLogger('INFO_LOG')
        logger.info(f'INFO: {url} {self.request.data} {self.request.headers} {message}')

And if you have a better way of logging please do suggest me

here is the database response

table name : django_db_logger_statuslog

|---|---------------|----------------------------------------|
|id | logger_name   |   msg                                  |
|---|---------------|----------------------------------------|
 7    INFO_LOG        INFO: http://127.0.0.1:8000/api/v1/farm/ 
                     {'farmer_id': '5840', 'lgd_state_id': 35, 
                      'district_code'}

-------|-----------|---------------------|
level  |    trace  |    create_datetime  |
-------|-----------|---------------------|
  20       NULL      2022-08-30 06:17:21

0 Answers0