Google App Engine标准环境Python应用stdout日志丢失问题排查与解决
Google App Engine标准环境Python应用stdout日志消失的解决办法
我最近碰到了一个头疼的问题:部署在GAE标准环境的Python应用,之前输出到stdout的日志能在Logs Viewer里正常查看,现在却完全找不到了——不仅「日志名称」下拉菜单的默认选项里没有stdout,手动在Query Builder里用logName="projects/airlib-main/logs/stdout"查询也搜不到任何内容。
我是怎么解决的
放弃使用logging.basicConfig()来配置日志,改为手动实例化专属的日志记录器,并在整个应用的所有日志输出场景中统一使用这个自定义记录器,问题立刻就解决了。
背后的原因推测
翻了Python官方日志文档,看到这么一段关键说明:
若根日志记录器已配置处理程序,此函数将不执行任何操作
结合之前日志正常、近期突然失效的情况,我推测是Google App Engine标准环境的日志处理逻辑近期发生了变更——现在GAE会自动为根日志记录器配置默认处理程序,导致我们之前依赖的basicConfig()完全不起作用,原本输出到stdout的日志也就无法被GAE的日志系统捕获并展示在Logs Viewer里了。
内容的提问来源于stack exchange,提问作者ppt000
相关产品推荐
相关产品推荐

