python - 为特定请求/URL/端点禁用登录 gunicorn

标签 python logging flask gunicorn

最近,有一个问题是如何在 Python Flask 中为特定端点 ( Skip Flask logging for one endpoint? ) 禁用日志记录。

例如,这对于 /healthcheck 是有意义的。您不想弄乱您的日志。

我为 Flask 解决了这个问题,但是当使用 Gunicorn 运行 Flask 时,我的解决方案不再起作用。

如何使用 Gunicorn 实现这一目标?我想要常规的日志记录行为,但没有 /healthcheck 的任何日志端点。

最佳答案

pre_request钩子(Hook)对我不起作用。我使用了 https://stackoverflow.com/a/52455408/2339067 的答案创建以下 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 = CustomGunicornLogger

关于python - 为特定请求/URL/端点禁用登录 gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57416645/

相关文章:

python - 使用 Flask 脚本在 gunicorn 上进行 Flask 部署

python - 仅在 2 个相同的非 NA 值之间填充 NA

python - 将所有 celery 任务的日志消息发送到单个文件

javascript - js : jasny's upload widget in a flask project

java - 为什么 StreamHandler 不捕获日志消息?

logging - 使用 rsync 检索日志文件

Python和Flask,在html页面上显示mysql数据库中的数据

python - 在 Ipython 中设置新主题时遇到问题?

python - 使用 Biopython 解析 PDB 文件

python - Azure网站使用python3和django