Cloud Function HTTP触发器无法记录自定义日志信息的问题咨询
Google Cloud Function HTTP触发器日志问题解答
看不到INFO级日志是否正常?
这是正常情况。Cloud Functions默认的日志展示规则是只显示WARNING及更高优先级的日志(如ERROR、CRITICAL),INFO级别日志会被默认过滤器屏蔽,所以你看不到那条启动日志。
如何查看INFO级日志?
- 控制台操作:在Cloud Console的日志页面,修改过滤器——要么在输入框添加
severity=INFO,要么从日志级别下拉菜单选择Info,就能显示所有INFO级日志。 - 命令行操作:使用gcloud工具直接读取指定级别的日志:
gcloud functions logs read cr_trigger --severity=INFO
如何记录更多类型的日志?
你可以利用Python logging模块的不同级别来记录各类信息:
logging.debug():记录调试细节,默认同样被过滤,需调整日志级别才能查看logging.warning():警告类信息,默认可见logging.error():错误信息,默认可见logging.critical():严重错误信息,默认可见
如果希望函数默认输出INFO及以上级别日志,可以在代码开头设置日志级别:
import functions_framework import logging # 全局设置日志级别为INFO logging.basicConfig(level=logging.INFO) @functions_framework.http def cr_trigger(request): logging.info(f'START TO PROCESS THE API RESPONSE') request_json = request.get_json(silent=True) logging.info(f'request_json {request_json}') # 示例:添加不同类型日志 logging.warning('检测到非预期的请求格式') try: # 模拟错误场景 result = 10 / 0 except ZeroDivisionError as e: # 记录错误及堆栈信息 logging.error(f'计算出错:{str(e)}', exc_info=True) return request_json
其中exc_info=True参数会在错误日志中附带完整堆栈追踪,便于排查问题。
内容的提问来源于stack exchange,提问作者YihanBao
相关产品推荐
相关产品推荐

