Estoy usando el registrador Django para iniciar sesión junto con los trabajadores de gunicorn. Actualmente, estoy probando con 3 trabajadores y estoy usando TimedRotatingFileHandler. Configuré when = my interval = 1, intenté enviar unas 1000 solicitudes y está escribiendo en el archivo nuevo y sobrescribiendo el archivo anterior también.
Aquí está mi configuración de settings.py
'debug': { 'level': 'DEBUG', 'filename': BASE_DIR + '/Log/debug.log', 'class': 'logging.handlers.TimedRotatingFileHandler', 'when': 'M', 'interval': 1, 'formatter': 'verbose' },Esto sucederá solo si uso más de 1 trabajador de gunicorn. Pero si uso 1 trabajador de gunicornio, esto no sucederá.
No debería usar controladores basados en archivos directamente desde múltiples procesos al mismo tiempo, que es lo que obtiene si usa gunicorn con esta configuración. En su lugar, use un SocketHandler o QueueHandler para enviar registros desde la aplicación web a un proceso separado que los registra en el disco. El libro de cocina de registro de Python tiene más información y un código de ejemplo, que es demasiado largo para reproducirlo aquí.
Escribir en un solo archivo desde múltiples procesos simultáneos sin que se pisen entre sí no es compatible con Python (y muchos otros lenguajes también).