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