使用AWS Lambda时如何限制Cloudwatch中不需要的日志?

时间:2019-05-17 13:46:11

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

我有一个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

1 个答案:

答案 0 :(得分:0)

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

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

    log4j.rootLogger=ERROR

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

    log4j.logger.com.example.myprogram=INFO

如果要显示多个软件包,则需要分别设置其日志记录配置。