首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google函数中记录不同的严重级别

如何在Google函数中记录不同的严重级别
EN

Stack Overflow用户
提问于 2019-02-13 00:52:52
回答 2查看 2.8K关注 0票数 2

我使用运行时python37部署了云函数。我的问题是如何使用不同的severity和相同的execution_id打印或日志记录,这可以很容易地通过日志级别通过Stackdriver接口进行过滤。

默认情况下,print将使用相同的execution_id,但我无法指定severity

我尝试过logginggoogle-cloud-logging,但是他们无法记录execution_id,这对于调试GCF非常有用。

EN

回答 2

Stack Overflow用户

发布于 2019-02-13 15:09:33

如果您真的想要print默认使用的执行id,那么它在request.headers.get("Function-Execution-Id")中可以用于https触发函数和背景函数,它与context.event_id相同。因此,您可以修改llompalles's answer并在函数中创建资源,并将执行id添加到资源中

票数 6
EN

Stack Overflow用户

发布于 2019-02-13 16:27:00

目前,无法将execution_id添加到日志条目中。但是,按照this answer中的方法,您可以轻松地过滤属于Stackdriver接口中相同函数执行的日志条目。

使用此云函数代码:

代码语言:javascript
复制
import time
from google.cloud import logging
from google.cloud.logging.resource import Resource

identifier = str(time.time())

log_client = logging.Client()

log_name = 'cloudfunctions.googleapis.com%2Fcloud-functions' 
resource = Resource(type="cloud_function", labels={"function_name": "yourCloudFunctionName", "region": "yourFunctionLocation"})
logger   = log_client.logger(log_name.format("yourProjectId"))

def hello_world(request):

    logger.log_struct({"message": "message string to log", "id": identifier}, resource=resource, severity='ERROR')

    return 'Wrote logs to {}.'.format(logger.name) 

一旦执行,打开Strackdriver接口中的日志条目。显示jsonPayload并单击id元素,它将显示Show matching entries。这将添加过滤器:

代码语言:javascript
复制
resource.type="cloud_function"
resource.labels.function_name="yourFunctionName"
jsonPayload.id="theID"

将显示属于此执行的所有日志条目。

最后,请记住云函数Python3.7运行时仍然处于测试版,可能会受到未来的更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54660919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档