Db logger автоматическое удаление данных через определенный промежуток времени
Пытаюсь реализовать DB logger в моем Django проекте
но я столкнулся с проблемой управления журналами в моей БД, поэтому как я могу автоматически удалить старые записи из БД
<
INSTALLED_APPS = ['django_db_logger',]
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'error': {
'class': 'django_db_logger.db_log_handler.DatabaseLogHandler',
'filename': 'errors.logs',
'backupCount': 4,
'when': 'D',
'interval': 1,
'encoding': 'utf8',
'level': 'ERROR'
},
'console': {
'class': 'django_db_logger.db_log_handler.DatabaseLogHandler',
'filename': 'info.logs',
'backupCount': 4,
'when': 'D',
'interval': 1,
'encoding': 'utf8',
'level': 'INFO',
},
},
'loggers': {
'ERROR_LOG': {
'handlers': ['error'],
'propagate': True,
'level': 'ERROR'
},
'INFO_LOG': {
'handlers': ['console'],
'propagate': True,
'level': 'INFO'
}
}
}
и также создал функцию в файле helpers.py для для управления журналами
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}')
Если у вас есть лучший способ регистрации, пожалуйста, предложите мне
вот ответ базы данных
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
В терминале отображается ошибка
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/config.py", line 563, in configure
handler = self.configure_handler(handlers[name])
File "/usr/lib/python3.8/logging/config.py", line 744, in configure_handler
result = factory(**kwargs)
TypeError: __init__() got an unexpected keyword argument 'filename'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
autoreload.raise_last_exception()
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
autoreload.check_errors(django.setup)()
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/home/adarsh/igrow-api/venv/lib/python3.8/site-packages/django/utils/log.py", line 75, in configure_logging
logging_config_func(logging_settings)
File "/usr/lib/python3.8/logging/config.py", line 808, in dictConfig
dictConfigClass(config).configure()
File "/usr/lib/python3.8/logging/config.py", line 570, in configure
raise ValueError('Unable to configure handler '
ValueError: Unable to configure handler 'console'