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.

El inicio de sesión en Django no funciona cuando se utiliza uWSGI.

Tengo un problema al iniciar sesión en un archivo usando el módulo integrado de python.

Aquí hay un ejemplo de cómo se generan los registros:

logging.info('a log message')

El registro funciona bien cuando se ejecuta la aplicación directamente a través de Python. Sin embargo, cuando se ejecuta la aplicación a través de uWSGI, el registro no funciona.

Aquí está mi configuración de uWSGI:

[uwsgi]
module = myapp.app:application
master = true
processes = 5

uid = nginx
socket = /run/uwsgi/myapp.sock
chown-socket = nginx:nginx
chmod-socket = 660
vacuum = true

die-on-term = true

logto = /var/log/myapp/myapp.log
logfile-chown = nginx:nginx
logfile-chmod = 640

EDIT:

La ruta /var/log/myapp/myapp.log registra los registros de acceso de nginx. Hay otra ruta configurada en un archivo settings.py. La segunda ruta es donde se supone que deben ir los registros de la aplicación, pero no hay ninguno cuando se usa uWSGI.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar relacionado con los permisos de archivo. Cuando se ejecuta la aplicación directamente a través de Python, los mensajes registrados se escriben en la ruta de archivo correcta especificada en el archivo settings.py. Sin embargo, cuando se ejecuta la aplicación a través de uWSGI, los registros se escriben en /var/log/myapp/myapp.log, que es la ruta para los registros de acceso de nginx.

    Para solucionar este problema, puedes intentar cambiar el parámetro logto en la configuración de uWSGI para que apunte a la ruta de archivo correcta para los registros de la aplicación. Además, asegúrate de que el usuario que ejecuta uWSGI tenga los permisos necesarios para escribir en esa ruta de archivo.

    Otra posible solución podría ser configurar el módulo logging en tu aplicación Django para enviar los registros a un controlador diferente, como SyslogHandler. Esto te permitiría registrar mensajes en el registro del sistema en lugar de en un archivo, lo que podría ser más fácil de administrar y solucionar problemas.

    En general, es importante asegurarse de que las rutas de archivo y los permisos estén correctamente configurados tanto para el módulo logging como para uWSGI para que el registro funcione correctamente.

Comments are closed.