Aws lambda AWS lambda不使用Log4j 2 appender

Aws lambda AWS lambda不使用Log4j 2 appender,aws-lambda,log4j2,apache-commons-logging,Aws Lambda,Log4j2,Apache Commons Logging,我正在尝试编写一个基于java的lambda函数。除了日志记录之外,一切都正常。我在类路径中有log4j2.xml文件 我也遵循了《圣经》中的指示 当我触发Lambda函数时,我在日志中得到了这个 log4j:WARN找不到记录器(com.amazonaws.AmazonWebServiceClient)的附加器。 log4j:警告请正确初始化log4j系统。 log4j:有关更多信息,请参阅警告 我使用maven来打包jar。pom.xml具有以下依赖项 <dependencies>

我正在尝试编写一个基于java的lambda函数。除了日志记录之外,一切都正常。我在类路径中有log4j2.xml文件

我也遵循了《圣经》中的指示

当我触发Lambda函数时,我在日志中得到了这个

log4j:WARN找不到记录器(com.amazonaws.AmazonWebServiceClient)的附加器。 log4j:警告请正确初始化log4j系统。 log4j:有关更多信息,请参阅警告

我使用maven来打包jar。pom.xml具有以下依赖项

<dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.amazon.alexa</groupId>
  <artifactId>alexa-skills-kit</artifactId>
  <version>${alexa.version}</version>
</dependency>

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.4</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.apache.directory.studio</groupId>
  <artifactId>org.apache.commons.io</artifactId>
  <version>2.4</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-lambda-java-core</artifactId>
  <version>1.0.0</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-java-sdk-dynamodb</artifactId>
  <version>1.9.40</version>
</dependency>
<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-lambda-java-log4j2</artifactId>
  <version>1.0.0</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.8.2</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.8.2</version>
</dependency>

朱尼特
朱尼特
3.8.1
测试
com.amazon.alexa
alexa技能工具包
${alexa.version}
org.apache.commons
commons-lang3
3.4
编译
org.apache.directory.studio
org.apache.commons.io
2.4
编译
亚马逊网站
aws lambda java内核
1.0.0
编译
亚马逊网站
aws java sdk dynamodb
1.9.40
亚马逊网站
aws-lambda-java-log4j2
1.0.0
org.apache.logging.log4j
log4j型芯
2.8.2
org.apache.logging.log4j
log4japi
2.8.2


我不确定我还必须做些什么才能使这项工作正常。

该错误消息是由类路径上的旧版本Log4j(1.2.x)生成的。Log4j 2.x错误消息看起来不同


请从类路径中删除log4j1.2.xjar。如果任何库依赖于Log4j 1.2,则添加适配器
Log4j-1.2-api-2.8.2.jar

请注意,AWS文档中关于java中lambda日志记录的错误。我已经为它向github推了一个补丁,但与此同时,在另一篇文章中看到我的答案,它可能是您所需要的

tldr;从

在创建Alexa技能时-其依赖项已经包含
log4j
组件,但缺少log4j附加器。添加到依赖项:

   dependencies {
    compile 'com.amazonaws:aws-lambda-java-core:1.2.0'
       compile 'org.apache.logging.log4j:log4j-core:2.8.2’
   }
Maven

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-lambda-java-log4j2</artifactId>
    <version>1.1.0</version>
</dependency>
错误变体

找不到log4j2配置文件。使用默认配置:仅将错误记录到控制台。将系统属性“org.apache.logging.log4j.simplelog.StatusLogger.level”设置为跟踪以显示Log4j2内部初始化日志记录

加:
log4j2.xml
(中描述)到
src/main/resources

StatusLogger Log4j2找不到日志记录实现。请将log4j核心添加到类路径。使用SimpleLogger登录到控制台

添加(与现有依赖项中的版本相同):

找不到log4j2配置文件。使用默认配置:仅将错误记录到控制台。将系统属性“org.apache.logging.log4j.simplelog.StatusLogger.level”设置为跟踪以显示Log4j2内部初始化日志记录

加:
log4j2.xml
(如上所述)到
src/main/resources

处理元素Lambda([Appenders:null])时出错:找不到类 找不到记录器配置“根”的追加器“Lambda”

加:

   dependencies {
    compile 'com.amazonaws:aws-lambda-java-core:1.2.0'
       compile 'org.apache.logging.log4j:log4j-core:2.8.2’
   }
dependencies {
   compile 'com.amazonaws:aws-lambda-java-log4j2:1.1.0'    
}