代码之家  ›  专栏  ›  技术社区  ›  kkesley

外部包的AWS lambda golang日志记录

  •  3
  • kkesley  · 技术社区  · 6 年前

    我开始为用golang编写的lambda函数使用外部包。

    如果这有什么区别的话,我会使用无服务器框架。

    每次数据库中出现错误时,我都希望集中错误日志记录。

    但我注意到云表上没有显示日志。只有日志 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)) 工作也一样。我上次一定错过了。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Brian McCall    6 年前

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

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

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