上云无忧 > 文档中心 > 腾讯云云函数使用教程 - 日志结构说明
云函数 SCF
腾讯云云函数使用教程 - 日志结构说明

文档简介:
云函数 SCF 日志按条写入日志服务 CLS,每次请求的日志由多条组成,每条日志均为固定的 键:值 格式。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
云函数 SCF 日志按条写入日志服务 CLS,每次请求的日志由多条组成,每条日志均为固定的 键:值 格式。

单条日志键值格式

默认格式

默认格式下每条日志均由 14 个固定的 键:值 组成,如下表所示:
字段名称
字段类型
字段含义
SCF_FunctionName
text
函数名称。
SCF_Namespace
text
函数所在命名空间。
SCF_StartTime
long
调用开始时间。
SCF_LogTime
long
日志产生时间。
SCF_RequestId
text
请求 ID。
SCF_Duration
long
函数运行时间(单位:毫秒)。
SCF_Alias
text
别名。
SCF_Qualifier
text
版本。
SCF_MemUsage
double
函数运行内存。
SCF_Level
text
Log4J 日志级别,默认为 INFO。
SCF_Message
text
日志内容。
SCF_Type
text
日志类型,Platform 指平台日志,Custom 指用户日志。
SCF_StatusCode
long
函数运行 状态码,202 表示请求状态为运行中。
SCF_RetryNum
long
重试次数。

精简格式

精简格式键值组成相对默认格式进行了删减,仅保留了日志查询场景下必须依赖的字段。精简格式下区分用户日志及平台日志,不同类型的日志对应不同的格式,如下表所示:

用户日志

用户日志为用户在代码中的标准输出,平台会对标准输出进行捕捉并上报到日志服务 CLS。
字段名称
字段类型
字段含义
SCF_FunctionName
text
函数名称。
SCF_Namespace
text
函数所在命名空间。
SCF_LogTime
long
日志产生时间。
SCF_RequestId
text
请求 ID。
SCF_Alias
text
别名。
SCF_Qualifier
text
版本。
SCF_Message
text
日志内容。
SCF_Type
text
日志类型,Platform 指平台日志,Custom 指用户日志。
SCF_RetryNum
long
重试次数。

平台日志

平台日志为在每次请求的开始和结束时打印的日志的内容,用于标记请求的开始、结束和记录执行情况,不支持取消。
平台日志有两种键值组成,记录请求执行情况的 report 日志键值组成为下表1,其他平台日志(如 START、END、ERROR、Response)键值组成为下表2。
表1
表2
字段名称
字段类型
字段含义
SCF_FunctionName
text
函数名称。
SCF_Namespace
text
函数所在命名空间。
SCF_StartTime
long
调用开始时间。
SCF_LogTime
long
日志产生时间。
SCF_RequestId
text
请求 ID。
SCF_Duration
long
函数运行时间(单位:毫秒)。
SCF_Alias
text
别名。
SCF_Qualifier
text
版本。
SCF_MemUsage
double
函数运行内存。
SCF_Level
text
Log4J 日志级别,默认为 INFO。
SCF_Message
text
日志内容。
SCF_Type
text
日志类型,Platform 指平台日志,Custom 指用户日志。
SCF_StatusCode
long
函数运行 状态码
SCF_RetryNum
long
重试次数。
字段名称
字段类型
字段含义
SCF_FunctionName
text
函数名称。
SCF_Namespace
text
函数所在命名空间。
SCF_StartTime
long
调用开始时间。
SCF_LogTime
long
日志产生时间。
SCF_RequestId
text
请求 ID。
SCF_Alias
text
别名。
SCF_Qualifier
text
版本。
SCF_Message
text
日志内容。
SCF_Type
text
日志类型,Platform 指平台日志,Custom 指用户日志。
SCF_RetryNum
long
重试次数。

日志格式选择与切换

1. 登录 云函数控制台,在左侧选择函数服务
2. 在“函数服务”页面上方,选择函数的地域和命名空间,并在页面中单击期望切换日志格式的函数名,进入该函数的详情页面。
3. 在“函数管理”页面中,选择函数配置 > 日志配置 > 日志格式,进行日志格式的选择和切换。如下图所示:

注意
日志配置为函数级,配置更新后对 $LATEST 版本和已发布版本均立即生效。
获取函数运行日志 接口暂不支持精简格式日志查询,请使用 CLS 搜索日志接口。如果已经使用 API 对日志键值进行处理,请详细阅读不同日志格式下的字段调整情况后谨慎操作。
精简格式相对于默认格式可降低日志产生的费用,但不再提供实时展示函数执行期间运行耗时、运行内存等信息。
精简格式仅支持非镜像部署的事件函数。

单次请求日志结构

SCF 单次请求日志结构分为调用日志和预置日志两种。
调用日志结构
预置日志结构
SCF 调用日志以平台日志标记请求开始、请求结束、请求错误信息、函数返回信息以及请求执行情况,用户日志封装在请求开始至请求结束之间。日志结构如下(表格中仅展示 SCF_Message字段示例):
SCF_Message
日志类型
内容含义
START RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx
平台日志
标记请求开始。
init log
用户日志
用户在函数初始化阶段打印的日志内容,容器仅在冷启动场景下会执行初始化逻辑,非冷启动场景下无初始化日志输出。
Init Report RequestId: 09c346d3-8417-49c5-8569-xxxxxxxxxxxx Coldstart: 236ms (PullCode: 70ms InitRuntime: 8ms InitFunction: 158ms) Memory: 640MB MemUsage: 57.86MB
平台日志
初始化执行情况日志,Coldstart 为初始化阶段总耗时,其中 PullCode 为初始化阶段拉取用户函数和层代码耗时或拉取镜像耗时,InitRuntime 为初始化阶段平台耗时,InitFunction 为初始化阶段用户代码执行耗时,Memory 为函数配置内存,MemUsage 为初始化阶段运行内存。容器仅在冷启动场景下会执行初始化逻辑,非冷启动场景下无初始化日志输出。
invoke log
用户日志
用户在函数调用阶段打印的日志内容。
ERROR RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx Result:xxx
平台日志
函数错误原因,函数执行正常时无 ERROR 日志。
Response RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx RetMsg:"Hello World"
平台日志
函数返回信息记录在 RetMsg 中。
END RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx
平台日志
标记请求结束。
Report RequestId:09c346d3-8417-49c5-8569-c55033b17f51 Duration:1ms Memory:128MB MemUsage:29.734375MB
平台日志
函数调用执行情况日志,Duration 为函数执行耗时,Memory 为函数配置内存,MemUsage 为函数执行阶段运行内存。
Python 运行环境的 Web 函数,打印一行初始化日志及一行调用日志为例,代码如下:
				
from flask import Flask
app = Flask(__name__)
print("init log")
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run(host='0.0.0.0',port=9000)
输出日志结构如下(仅展示 SCF_Message 字段内容):

				
START RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:9000/ (Press CTRL+C to quit)
init log

Init Report RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx Coldstart: 640ms (PullCode: 119ms

InitRuntime: 2ms InitFunction: 519ms) Memory: 640MB MemUsage: 5.21MB

Hello world
Response RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx RetMsg:"Hello World"
END RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx
Report RequestId:09c346d3-8417-49c5-8569-xxxxxxxxxxxx Duration:1ms Memory:128MB MemUsage:29.734375MB

相似文档
  • 说明: 若您的函数于2021年1月29日前创建且尚未进行迁移,如需使用更多日志分析功能,则请参见 日志投递配置(旧),将函数调用日志投递到日志服务 CLS 使用。
  • 说明: 云函数 SCF 于2021年01月29日起全量接入腾讯云 日志服务 CLS,在此之后创建的函数调用日志将默认投递至 CLS,且支持日志实时输出。若您的函数于2021年1月29日前创建,且需进行日志检索与日志投递,请参考本文档使用该功能。
  • 并发是云函数在某个时刻同时处理的请求数。在业务其他服务可以支撑的情况下,您可以通过简单的配置实现云函数从几个并发到数以万计并发的拓展。
  • 云函数平台提供函数粒度的并发管理能力,供您灵活控制不同函数的并发情况。 并发管理体系: 目前云函数有两个层次的并发管理能力,分别是账号并发额度和函数的最大独占配额。
  • 预置并发支持并发实例按配置预先启动,同时云函数平台不会主动回收这些实例,会尽可能地保障有相应数量的可以处理请求的并发实例。 您可通过此功能,为函数的指定版本设定预置并发额度。通过配置预置并发,可预先进行计算资源的准备,降低冷启动、运行环境初始化及业务代码初始化引起的耗时。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部