【问题标题】:AWS Lambda golang logging from external package来自外部包的 AWS Lambda golang 日志记录
【发布时间】:2018-08-28 07:56:36
【问题描述】:

我开始为我的 lambda 函数使用外部包,它是用 Golang 编写的。

如果有什么不同,我会使用无服务器框架。

我想在每次数据库中出现错误时集中记录错误。

但我注意到日志没有显示在 cloudwatch 上。仅显示 main 包中的日志。

这是我的代码

package response
func ServerError(err error) (events.APIGatewayProxyResponse, error) {
    log.Print(fmt.Errorf("ERROR: %v", err))
    return Custom(500, "Internal Server Error", nil)
}

我也试过

package response
func ServerError(err error) (events.APIGatewayProxyResponse, error) {
    fmt.Println(fmt.Errorf("ERROR: %v", err))
    return Custom(500, "Internal Server Error", nil)
}

我的问题是如何在主包之外启用登录 lambda?

谢谢!

编辑

事实证明log.Print(fmt.Errorf("ERROR: %v", err)) 也可以。我上次一定是错过了。

【问题讨论】:

    标签: go logging aws-lambda


    【解决方案1】:

    在无服务器框架中,打印到 std.out/std err 的任何内容都将写入 cloudwatch 日志。因此,您所要做的就是将错误写入 std.err

    fmt.Fprintf(os.Stderr, "log message: %s", str)

    这篇文章涉及写入 std.err https://stackoverflow.com/a/40694000/2840591

    【讨论】:

    • 原来log.Print(fmt.Errorf("ERROR: %v", err)) 也可以。我一定错过了。谢谢!这澄清了一些事情!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2016-10-08
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多