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

同一Python文件中Flask与gRPC共存时无法查看gRPC函数日志求助

解决gRPC函数日志不显示的问题

原因分析

Flask的debug=True模式会触发自动重启机制:它会先启动父进程,再fork出子进程运行Flask应用。你的gRPC线程在父进程中启动,控制台输出被子进程的Flask日志占据,同时线程中的print()输出可能因缓冲或进程隔离无法显示到当前控制台。

解决办法

方法1:关闭Flask Debug模式

直接修改app.run参数,关闭Debug模式后进程不会重启,gRPC线程的print()输出可正常显示:

app.run(debug=False, port=POST_PORT)

方法2:保留Debug但禁用自动重启

如果需要保留Debug的代码热重载等功能,添加use_reloader=False参数关闭自动重启:

app.run(debug=True, port=POST_PORT, use_reloader=False)

方法3:改用标准日志模块替代print

使用Python内置logging模块,能更好处理多线程日志输出,还可配置输出到文件:

  1. 先配置日志:
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(threadName)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
  1. 在gRPC函数中替换print()为:
logger.info("gRPC请求处理日志")

方法4:强制刷新print缓冲

如果坚持用print(),在语句后添加flush=True强制刷新输出缓冲:

print("gRPC函数日志内容", flush=True)

验证

修改后重新运行python3 post_service_server.py,调用gRPC接口即可在控制台看到对应日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:22:06