我开始将外部软件包用于用Golang编写的lambda函数。
如果有什么区别,我会使用无服务器框架。
每次数据库中发生错误时,我想集中记录错误。
但是我注意到日志没有显示在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))
也可以工作。我上次一定很想念它。
答案 0 :(得分:0)
在无服务器框架中,任何打印到std.out / std err的内容都会写入cloudwatch日志中。因此,您要做的就是将错误写入std.err
fmt.Fprintf(os.Stderr, "log message: %s", str)
这篇文章涉及写std.err https://stackoverflow.com/a/40694000/2840591