全部产品
云市场

函数日志

更新时间:2018-08-22 18:03:32

在函数计算中,函数执行的日志可以存储在日志服务中,您可以根据日志服务中存储的函数日志进行代码调试、故障分析、数据分析等操作。本文对使用控制台为服务配置日志仓库并查看日志的步骤以及使用 fcli 为服务配置日志仓库并查看日志的步骤进行介绍。

由于日志服务控制台查看日志格式不太友好,推荐您使用 fcli 查看日志,您可以使用控制台为服务配置日志仓库,通过 fcli 查看日志。

通过日志服务存储函数日志需要在函数对应的服务中配置日志项目 LogProject 和日志仓库 Logstore,并授予该服务访问日志服务的权限。函数日志会打到配置的 Logstore 中,同一个服务下的所有函数日志都会打到同一个 Logstore 中。

使用控制台

使用控制台为服务配置日志仓库

创建 LogProject 和 Logstore

在为服务配置日志仓库前,需要已经有日志项目 LogProject 和日志仓库 Logstore。如果之前没有 LogProject 和 Logstore,需要去 日志服务控制台 创建,步骤如下:

  1. 在日志服务控制台点击 创建Project
  2. 设置 Project 名称和所属地域。日志服务的 Project 名称是全局唯一的。Project 和所属地域一旦设置不允许更改。
  3. 创建成功 Project 后,添加 Logstore ,设置 Logstore 的名称。
  4. Logstore 设置完毕后,进入到对应的 Logstore 中,会提示没有开启索引,在右上角开启索引即可。
  5. 至此,日志项目 LogProject 和 Logstore 就创建完成了。

create-logproject-1create-logproject-2create-logproject-3create-logproject-4create-logproject-5create-logproject-6

为服务配置 LogProject 和 Logstore

使用日志服务查看函数日志需要:

  • 为函数所在服务配置 LogProject 和 Logstore,此服务下所有函数的日志都会打到同一个 Logstore 中;
    • 可以在创建服务的时候配置,也可以在更新服务的时候配置。
    • 关于创建服务和更新服务的操作详情,请参考 服务的操作
  • 授予函数计算的服务访问日志服务的权限。
    • 有关更多服务权限的内容,请参考 权限简介

config-service

使用控制台查看日志

在配置了 LogProject 和 Logstore 的服务中新建一个默认函数,输出日志 hello world,您的函数运行时,产生的日志都会输出到日志库中,可以在 日志服务控制台 查看:进入到设置的 Logstore 中,可以看到函数执行日志。

view-logs

使用 fcli

没有使用过 fcli 的同学需要先下载并对 fcli 进行配置,请参考文章 fcli

使用 fcli 为服务配置日志仓库

创建 LogProject 和 Logstore

fcli shell 进入交互模式后,通过命令 mkl -p log-project -s log-store 即可新建 LogProject 和 Logstore ,其中将 log-project 和 log-store 改成您自己的 LogProject 和 Logstore。示例如下:

  1. ~ fcli shell
  2. Welcome to the function compute world. Have fun!
  3. >>> mkl -p test-log-project -s test-log-store
  4. Note: you have to pay at least 0.04 RMB/day for the log store resource. For the detail billing info please refer to:
  5. https://www.aliyun.com/price/product#/sls/detail
  6. Do you want to create the log store? [y/n]
  7. y

注意:日志服务会对资源收取一定的预留费用,这意味着即使您不写任何日志,也会付费,最低 ¥0.04/每天。计费细节请参阅 相关文档

为服务配置 LogProject 和 Logstore

  1. >>> grant serviceName
  2. Please input the role name: #这里会新建一个角色,您为新建的角色命名
  3. fc-logs-role
  4. Please input the policy name: #这里会新建一个权限,为新建的权限命名
  5. fc-logs-policy
  6. Permission grant scenarios:
  7. 1. Allow FC write function logs to your log store. #选择权限
  8. 2. Allow FC copy code from your OSS location.
  9. Please input your choice [1-2]:
  10. 1
  11. Please input the log project: test-log-project
  12. Please input the log store: test-log-store
  13. ...grant success

使用 fcli 查看日志

使用命令 logs 即可查看日志

  • -c —count int 设置返回日志数目的最大行数(默认是 1000 行)
  • -d —duration int 返回从这段时间之前一直到现在的函数日志,单位为秒(默认是86400,即 24 h)
  • -e —end string 设置查看日志的截止时间,格式为 UTC RFC3339,例如 2017-01-01T01:02:03Z
  • -s —start string 设置查看日志的起始时间,格式为 UTC RFC3339,例如 2017-01-01T01:02:03Z
  • -t —tail 设置从倒数第i行开始打印日志
  1. # 在相应service目录下
  2. # 默认打印一天内的前1000条日志
  3. >>> logs myFunction
  4. # 打印一分钟内执行的日志,最多打印5000条
  5. >>> logs -d 60 -c 5000 myFunction
  6. # 打印倒数100行日志
  7. >>> logs -t -c 100 myFunction
  8. # 打印从 2018-01-22T18:00:00Z 到 2018-01-22T19:00:00Z 的函数日志信息
  9. >>> logs -s 2018-01-22T18:00:00Z -e 2018-01-22T19:00:00Z myFunction