es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Django: los registradores están sobrescribiendo el archivo de registro anterior junto con el nuevo.

Estoy utilizando el registrador Django para registrar junto con los trabajadores gunicorn. Actualmente, estoy probando con 3 trabajadores y estoy usando TimedRotatingFileHandler. Configuré cuando = m e intervalo = 1, intenté enviar algunas 1000 solicitudes y está escribiendo en el nuevo archivo y sobrescribiendo también el archivo anterior.

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 solo sucederá si uso más de 1 trabajador gunicorn. Pero si uso 1 trabajador gunicorn, esto no está sucediendo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución

    Este problema ocurre cuando varios trabajadores de Gunicorn utilizan el mismo archivo de registro para escribir registros simultáneamente. Cuando un trabajador intenta rotar el archivo de registro, sobrescribe el archivo de registro que está siendo utilizado por otro trabajador, lo que resulta en la pérdida de registros.

    Para evitar este problema, podemos realizar los siguientes pasos:

    1. Cambiar el formato del nombre del archivo de registro para incluir el ID de proceso del trabajador de Gunicorn, lo que creará un archivo de registro separado para cada trabajador.
    'filename': BASE_DIR + '/Log/debug_%(process)d.log' 
    
    1. Establecer la bandera --preload de Gunicorn en True, lo que cargará el código de la aplicación en memoria antes de bifurcar los procesos del trabajador. Esto asegurará que cada trabajador tenga su propio espacio de memoria único, evitando interferencias entre ellos.
    gunicorn --preload <nombre_de_aplicación>:<punto_de_entrada_de_aplicación> 
    

    Realizando estos cambios, cada trabajador de Gunicorn tendrá su propio archivo de registro y no sobrescribirá el archivo de registro de ningún otro trabajador.</punto_de_entrada_de_aplicación></nombre_de_aplicación>

Comments are closed.