只需要记录 Cloudwatch 中的错误

Need to Log Only errors in Cloudwatch

我正在使用 Lambda 函数来填充 Dynamo DB。我需要在 cloudwatch 中记录事件详细信息,以便在发生某些情况时了解异常情况。我能够为 lambda 函数配置 cloudwatch 日志,但它显示了导致不需要的日志记录的其他调试语句。有什么配置方法吗that.Any 帮助将不胜感激。

每次调用都会从 Lambda 获取三行日志:START、END 和 REPORT。所有其他日志行都来自客户代码(或客户代码使用的模块),或者来自用户代码中未处理异常的堆栈跟踪,因此由您来控制。

您必须在代码中使用异常处理机制。如果您的代码中出现任何错误,那么 catch 块应该 运行 并且您可以在那里使用 stacktrace 方法来跟踪错误。不同语言的堆栈跟踪方法可能不同。 Cloudwatch日志可以根据语言使用简单的控制台输出方式。

好的,我想我误解了你的问题。显然(根据您的评论)您正在使用 log4j。设置log4j日志级别的方法是:

logger = Logger.getRootLogger();  // or Logger.getLogger("com.foo");
logger.setLevel(Level.ERROR);

这是标准的 log4j 使用,与 Lambda 无关。一个更特定于 Lambda 的问题可能是如何在不更改源代码的情况下控制日志记录。目前最好的答案是使用 Lambda 别名,这会很笨拙,但很快 Lambda 将支持环境变量作为函数配置的一部分,您可以使用它。