TimedRotatingFileHandler - это класс обработчика логов в Python, который позволяет записывать сообщения в файлы с логированием по времени. Этот обработчик автоматически создает новый файл логов в указанное время (например, каждый день или каждый час) и может также удалять старые файлы логов в зависимости от настроек.
Чтобы настроить TimedRotatingFileHandler в Django, следуйте этим шагам:
1. Импортируйте необходимые модули:
import logging from logging.handlers import TimedRotatingFileHandler
2. Создайте конфигурацию логирования в вашем файле настроек settings.py:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'timed_rotating_file': { 'level': 'DEBUG', 'class': 'logging.handlers.TimedRotatingFileHandler', 'filename': 'path/to/log_file.log', 'when': 'midnight', # Укажите период ротации файлов (например, каждый день) 'backupCount': 7, # Укажите количество файлов логов для хранения 'formatter': 'verbose', }, }, 'loggers': { '': { 'handlers': ['timed_rotating_file'], 'level': 'DEBUG', 'propagate': True, }, }, 'formatters': { 'verbose': { 'format': '%(asctime)s - %(levelname)s - %(message)s' }, }, }
3. Используйте настроенный обработчик логов в вашем коде:
import logging logger = logging.getLogger(__name__) logger.info('Это сообщение будет записано в файл с ротацией по времени')
4. Убедитесь, что у вас есть необходимые разрешения для создания и записи в файл логов (или создайте файл и установите соответствующие разрешения):
touch path/to/log_file.log chmod 777 path/to/log_file.log
5. Запустите ваше Django приложение и проверьте, что сообщения записываются в файл логов согласно настройкам ротации по времени.
Это базовый пример настройки TimedRotatingFileHandler в Django, вы можете дополнительно настроить параметры в соответствии с вашими потребностями. Не забудьте также учитывать возможные проблемы с правами доступа к файлам при записи логов.