【问题标题】:How to restrict unwanted logs from Cloudwatch while using AWS Lambda?使用 AWS Lambda 时如何限制来自 Cloudwatch 的不需要的日志?
【发布时间】:2019-05-17 22:31:26
【问题描述】:

我有一个 lambda 函数,它从 S3 存储桶读取文件并将其存储到另一个 S3 存储桶。 lambda 工作正常,但是当我看到 cloudwatch 日志时,我看到了其他不需要的日志。

我得到的其他日志如下所示。,

[main] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext 
[main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory
[main] DEBUG com.amazonaws.AmazonWebServiceClient
[main] DEBUG org.apache.http.headers
[main] DEBUG org.apache.http.wire

我只想显示要在 cloudwatch 中显示的代码中使用的 logger.info()。有没有办法限制这些日志显示?有人可以提供示例代码供参考吗?

我正在设置 log4j.properties 文件,内容如下。

log4j.rootLogger=INFO
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c -  %m%n
# Log all HTTP content (headers, parameters, content, etc)  for
# all requests and responses. Use caution with this since it can
# be very expensive to log such verbose data!
log4j.logger.org.apache.http.wire=INFO

【问题讨论】:

  • 您的 Lambda 函数显然是用 Java 编写的,因此您正在构建一个部署包。这个捆绑包包括一个日志框架,可能是 Logback,但也可能是 Log4J 版本之一。您首先需要确定该框架,并将配置文件添加到您的问题中。
  • 更新了@guest的问题

标签: amazon-web-services aws-lambda amazon-cloudwatchlogs


【解决方案1】:

这是一个 Log4J 1.x 日志配置,因此消除不需要的消息的方法是:

  1. 将根记录器更改为仅允许重要消息(您可以将其设置为 OFF,但您确实希望在错误发生的地方看到错误):

    log4j.rootLogger=ERROR

  2. 更改应用程序的记录器以启用日志记录:

    log4j.logger.com.example.myprogram=INFO

如果您要显示多个包,则需要单独设置它们的日志记录配置。

【讨论】:

  • 对于您的具体配置,您还需要删除org.apache.http.wire 配置。
猜你喜欢
  • 1970-01-01
  • 2016-03-22
  • 2016-11-27
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 2020-06-25
相关资源
最近更新 更多