本文介绍如何在Go运行环境下使用Go SDK、其它日志库提供的方法打印日志。
打印日志
当需要查看函数运行相关的自定义状态时,可以使用如下几种方式打印日志至标准输出stdout。往标准输出stdout打印的日志内容会被函数收集。
以下分别介绍所使用的几种日志打印方法。
使用context.GetLogger()方法打印日志
函数计算平台提供的Go SDK包含了 GetLogger()
方法打印日志,使用该方法打印的每条日志中都包含日志级别、RequestId、时间、文件名和行号等信息。示例代码如下:
package main
import (
"context"
"gitee.com/ctyunfaas/cf-runtime-go-sdk/cf"
"gitee.com/ctyunfaas/cf-runtime-go-sdk/fccontext"
)
func HandleRequest(ctx context.Context) (string, error) {
fctx, _ := fccontext.FromContext(ctx)
fctx.GetLogger().Info("Hello info")
fctx.GetLogger().Infof("Hi, %s\n", "info")
fctx.GetLogger().Warn("Goodbye warn")
fctx.GetLogger().Warnf("Bye-bye, %s\n", "warn")
return "hello world", nil
}
func main() {
cf.Start(HandleRequest)
}
函数被执行后,会输出以下日志:
2024-03-11 18:46:00.102699 d0c5bc99-e0a9-4d82-beb0-2b23185640ea [INFO] main.go:12: Hello info
2024-03-11 18:46:00.102715 d0c5bc99-e0a9-4d82-beb0-2b23185640ea [INFO] main.go:13: Hi, info
2024-03-11 18:46:00.102725 d0c5bc99-e0a9-4d82-beb0-2b23185640ea [WARN] main.go:15: Goodbye warn
2024-03-11 18:46:00.102729 d0c5bc99-e0a9-4d82-beb0-2b23185640ea [WARN] main.go:16: Bye-bye, warn
使用log库打印日志
您还可以使用log库打印日志,它只包含日期和时间。示例代码如下:
package main
import (
"context"
"gitee.com/ctyunfaas/cf-runtime-go-sdk/cf"
"log"
)
func HandleRequest(ctx context.Context) (string, error) {
log.Println("hello log println")
return "hello world", nil
}
func main() {
cf.Start(HandleRequest)
}
函数被执行后,会输出以下日志:
2024/03/12 14:34:36.567851 hello log println
查看日志
函数执行完成后,您可以在函数详情页的日志页签查看日志信息。