【问题标题】:Logging using Log4J2 on aws lambda - Class not found在 aws lambda 上使用 Log4J2 进行日志记录-找不到类
【发布时间】:2018-10-03 01:09:17
【问题描述】:

我正在尝试使用 AWS 文档中所述的 Log4J2 日志记录:

https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j2.8

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
  <Appenders>
    <Lambda name="Lambda">
      <PatternLayout>
          <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
      </PatternLayout>
    </Lambda>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Lambda" />
    </Root>
  </Loggers>
</Configuration>

错误 但是在运行 lambda 时出现以下错误:(我删除了下面的时间戳以提高可读性)

ERROR Error processing element Lambda ([Appenders: null]): CLASS_NOT_FOUND
ERROR Unable to locate appender "Lambda" for logger config "root"

试过 我确保 log4J 库和 log4j-corelog4j-apiaws-lambda-java-log4j2aws-lamda-java-core 都在包中。

【问题讨论】:

    标签: java amazon-web-services aws-lambda log4j2


    【解决方案1】:

    我也有这个问题。事实证明,AWS 示例文档中存在拼写错误。

    &lt;Configuration .. 标签中的packages 错误。

    根据log4j的plugin configuration docspackages参数是包而不是类。

    所以修改你的 log4j2.xml 配置为...

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration packages="com.amazonaws.services.lambda.runtime.log4j2">
      <Appenders>
        <Lambda name="Lambda">
          <PatternLayout>
              <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
          </PatternLayout>
        </Lambda>
      </Appenders>
      <Loggers>
        <Root level="debug">
          <AppenderRef ref="Lambda" />
        </Root>
      </Loggers>
    </Configuration>
    

    希望这会有所帮助。 干杯

    【讨论】:

    猜你喜欢
    • 2017-12-20
    • 2014-10-30
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 2011-10-21
    • 2016-10-08
    相关资源
    最近更新 更多