首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用Log4j 2附录的AWS

不使用Log4j 2附录的AWS
EN

Stack Overflow用户
提问于 2018-03-01 07:59:09
回答 3查看 14.3K关注 0票数 3

我正在尝试编写一个基于java的lambda函数。除了伐木,一切都很好。我在类路径中有log4j2.xml文件。

我也遵循了Java中的AWS Lambda LOgging中所规定的对单词的指示。

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

Log4j:没有为记录器(com.amazonaws.AmazonWebServiceClient)找到任何附加程序。log4j :警告请正确初始化log4j系统。Log4j:警告参见http://logging.apache.org/log4j/1.2/faq.html#noconfig以获得更多信息。

我用maven包装这个罐子。pom.xml具有以下依赖项。

代码语言:javascript
复制
<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>

我不知道我还必须做些什么才能使这件事成功。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-23 05:03:24

请注意,java中的lambda日志记录的AWS文档中存在/曾经有一个错误。我已经向github推了一个补丁,但同时请看我对另一个帖子的回答,这可能是您所需要的。

.LambdaAppender标记的packages属性中删除<Configuration ...

请参阅另一个堆栈溢出问题

票数 2
EN

Stack Overflow用户

发布于 2018-03-01 13:36:03

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

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

票数 1
EN

Stack Overflow用户

发布于 2019-05-26 09:28:38

测井基准

在创建Alexa技能时,它的依赖项已经包含了log4j组件,但是锁定了Log4j附录。将aws-lambda-java-log4j2添加到依赖项中:

Maven

代码语言:javascript
复制
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-lambda-java-log4j2</artifactId>
    <version>1.1.0</version>
</dependency>

级:

代码语言:javascript
复制
dependencies {
    compile 'com.amazonaws:aws-lambda-java-log4j2:1.1.0'
}

误差变体

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

添加:log4j2.xml (在测井基准中描述)到src/main/resources

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

Add (与现有依赖项相同的版本):

代码语言:javascript
复制
   dependencies {
    compile 'com.amazonaws:aws-lambda-java-core:1.2.0'
       compile 'org.apache.logging.log4j:log4j-core:2.8.2’
   }

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

添加:log4j2.xml (上文描述)到src/main/resources

错误处理元素Lambda (附录: null):CLASS_NOT_FOUND无法找到记录器配置"root“的附录"Lambda”

添加:

代码语言:javascript
复制
dependencies {
   compile 'com.amazonaws:aws-lambda-java-log4j2:1.1.0'    
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49045086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档