Recientemente, surgió la pregunta de cómo deshabilitar el registro en Python Flask para un punto final específico (¿Omitir el registro de Flask para un punto final? ).
Esto tiene sentido, por ejemplo, para /healthcheck que no desea desordenar sus registros.
Resolví esto para Flask, pero cuando ejecuto Flask usando Gunicorn, mi solución ya no funciona.
¿Cómo logro esto usando Gunicorn? Quiero un comportamiento de registro regular, pero no tengo ningún registro para el punto final /healthcheck .
El pre_request no funcionaba para mí. Usé la respuesta de https://stackoverflow.com/a/52455408/2339067 para crear el siguiente archivo gunicorn.conf.py :
import logging from gunicorn import glogging class CustomGunicornLogger(glogging.Logger): def setup(self, cfg): super().setup(cfg) # Add filters to Gunicorn logger logger = logging.getLogger("gunicorn.access") logger.addFilter(HealthCheckFilter()) class HealthCheckFilter(logging.Filter): def filter(self, record): return 'GET /healthcheck' not in record.getMessage() accesslog = '-' logger_class = CustomGunicornLoggerLo descubrí: debe anular el gancho pre_request .
Esto puede hacerse de la siguiente manera:
Debe crear un archivo de configuración, por ejemplo, config/gunicorn.py :
def pre_request(worker, req): if req.path == '/healthcheck': return worker.log.debug("%s %s" % (req.method, req.path)) Y luego utilícelo cuando inicie gunicorn: gunicorn server:app -c config/gunicorn.py