查看用户数据函数日志

日志可帮助你了解用户数据函数在执行和诊断函数的行为不符合预期时的问题。 可以通过两种方式查看日志:

  • 在测试期间 - 在开发模式下测试函数时,在测试面板中查看实时日志
  • 调用后 - 查看已调用的已发布函数的历史日志

本文介绍如何查看和使用日志来监视函数执行并排查问题。

在测试期间查看日志

测试函数时,可以在函数执行时实时查看日志:

  • 开发模式下的测试面板 - 在测试未发布或已发布的函数时查看日志
  • 在“仅运行”模式下运行面板 - 在运行已发布函数时查看日志

这两个面板都立即显示日志输出,使你能够在执行过程中看到详细信息并调试问题。 有关测试函数的详细信息,请参阅 测试用户数据函数

查看已调用函数的历史日志

调用已发布的函数后,可以查看历史日志以分析过去的执行。

若要访问历史日志,请执行以下操作:

  1. 使用模式切换器切换到 “仅运行”模式

  2. 将鼠标悬停在函数列表中的函数名称上。

  3. 选择省略号图标(...),然后选择“ 查看历史日志”。

    显示如何查看函数的历史日志的屏幕截图。

了解历史日志视图

历史日志视图显示所选函数的最近调用。 最多可以看到 50 个条目,日志将保留 30 天。 选择 “日期”(UTC) 列中的日期链接以查看特定调用的详细日志。

显示如何查看函数按日期排序的所有调用的屏幕截图。

所有历史日志 ”窗格包含每个调用的以下信息:

  • 日期 (UTC)。 显示函数调用开始时间的时间戳。 选择链接可查看该调用的所有日志。 它显示调用的详细信息以及用户或服务记录的所有消息。
  • Status。 指示调用是成功还是失败。
  • 持续时间(毫秒)。 函数执行的持续时间,以毫秒为单位。
  • 调用 ID。 该特定函数调用的 ID。 调用 ID 作为 HTTP 标头的一部分返回。 如果有任何问题,用户可以在支持请求中引用此调用 ID,以检索有关调用的详细信息。

查看特定调用的详细日志

打开历史日志视图(如上一部分所述)后,可以深入查看各个调用。 在 “日期”(UTC) 列中选择时间戳链接时,将打开 “调用详细信息 ”窗格以显示该调用的所有日志。 可以查看以下内容:

  • 使用 logging 模块在函数代码中添加的所有日志
  • 有关函数执行的系统生成的日志
  • 发生的任何错误或异常

每个日志条目包括时间戳、日志消息和日志级别(信息、警告、错误、严重)。

显示如何查看给定函数调用的详细日志的屏幕截图。

将日志记录添加到函数

可以使用 Python 的标准 logging 模块将自定义日志语句添加到函数。 日志有助于跟踪函数行为、监视数据处理和诊断问题。

导入日志记录模块

首先,在 logging 函数代码中导入模块:

import logging

注释

默认情况下,在 Fabric 门户中或使用 VS Code 扩展创建新的用户数据函数项时,会导入该 logging 模块。

使用适当的日志级别

Python 为不同情况提供不同的日志级别。 使用适当的级别使日志更有意义:

# INFO - Track normal function execution and key steps
logging.info('Processing started for customer ID: 12345')
logging.info('Successfully retrieved 150 records from database')

# WARNING - Log potentially problematic situations that don't prevent execution
logging.warning('API response time exceeded 2 seconds')
logging.warning('Using cached data because fresh data is unavailable')

# ERROR - Log errors that affect functionality but don't crash the function
logging.error('Failed to connect to external API: Connection timeout')
logging.error('Invalid data format in row 42')

# CRITICAL - Log severe errors that may cause function failure
logging.critical('Database connection lost')
logging.critical('Required configuration parameter missing')

日志记录的最佳做法

遵循以下做法,使日志更加有效:

  • 记录有意义的信息 - 包括有助于诊断问题的相关详细信息,例如 ID、计数或参数值
  • 使用适当的日志级别 - 不要将所有内容记录为 INFO 或 ERROR;对情况使用适当的级别
  • 在关键点记录 - 在函数开始时、外部调用前后以及处理数据时添加日志
  • 避免记录敏感数据 - 不要记录密码、令牌、个人信息或其他敏感数据
  • 保持消息简洁 - 编写清晰、简短的日志消息,易于扫描
  • 注意日志记录量 - 过度日志记录可能会影响性能并达到每日处理限制

有关编写函数代码的详细信息,请参阅 Python 编程模型

限制和日志保留

使用日志时,请记住以下限制:

  • 日志保留 - 默认情况下保留历史调用日志 30 天
  • 可见条目 - 历史日志视图显示每个函数最多 50 个条目
  • 日志可用性 - 调用日志可能需要几分钟才能显示;如果看不到最近的日志,请刷新页面
  • 每日引入限制 - 每天 250 MB;限制每日重置
  • 采样 - 日志可以通过采样来减少数据量,同时确保分析在统计上仍然准确
  • 支持的日志类型 - 信息、错误、警告和跟踪

有关完整的服务限制信息,请参阅 服务详细信息和限制