You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Azure Web App Service中无法查看Python Flask日志

解决Azure Linux Web App中Flask专属日志无法捕获的问题

以下是针对该问题的实用解决建议:

  • 配置Flask日志输出到标准流
    Azure Linux Web App的日志系统默认监听stdout和stderr,而Flask的app.logger默认可能未配置输出到这两个流。可以手动添加StreamHandler来指定输出目标:

    import logging
    from flask import Flask
    
    app = Flask(__name__)
    
    # 配置日志输出到stdout
    handler = logging.StreamHandler()
    handler.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
    app.logger.addHandler(handler)
    app.logger.setLevel(logging.INFO)
    

    配置后,app.logger.info()等日志会输出到stdout,即可被Azure日志系统捕获。

  • 匹配Azure门户的日志级别
    登录Azure门户,进入你的Web App,在「日志」>「应用日志」(文件系统或Blob存储)中,确保设置的日志级别不高于Flask中配置的级别。例如Flask用INFO级别,Azure侧需设为INFO或DEBUG,避免日志被过滤。

  • 调整启动命令的日志配置
    若使用gunicorn等WSGI服务器启动应用,需确保服务器将日志输出到标准流。启动命令可添加参数指定日志输出:

    gunicorn --bind=0.0.0.0 --timeout 600 app:app --access-logfile - --error-logfile -
    

    其中--access-logfile -和--error-logfile -表示将访问日志和错误日志输出到stdout/stderr,确保Flask的日志能被传递到Azure日志系统。

  • 查看指定日志路径
    登录Kudu控制台,进入/home/LogFiles/Application目录,查看该目录下的日志文件。Flask的专属日志可能会单独存放在这里,而非与print输出混在一起。同时也可以在Azure门户的「日志流」中实时查看日志输出,确认日志是否被捕获。

  • 检查日志处理器是否被覆盖
    部分第三方库可能会修改Flask的日志配置,导致app.logger的处理器被替换。可以在Flask app初始化后添加以下代码,验证处理器是否正确配置:

    print(app.logger.handlers)
    

    部署后在Kudu日志中查看输出,确认StreamHandler存在于处理器列表中。

内容的提问来源于stack exchange,提问作者harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 23:28:19