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'


Вернуться на верх