dynamodb本地:错误StatusLogger Log4j2找不到日志记录实现

问题描述

这是我第一次遇到此问题,我在Linux和Mac上使用了DynamoDB local,大多数情况下它运行良好,现在我在另一台Mac机器上,它只是抛出一个错误

我收到的错误消息是:

ERROR StatusLogger Log4j2 Could not find a logging implementation. 
Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

我尝试通过自制软件安装它,但是抛出了同样的错误。我可能弄乱了机器中的某些东西,或者可能错过了某些配置。

下面是我尝试运行它时的屏幕截图:

enter image description here

参考:
Dynamo DB Local:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

解决方法

根据this AWS Support Forum response by an AWS person,此问题不会影响DynamoDB本地实例的工作。

他们确实打算对其进行修复,以便不显示消息,但不会造成功能差异。

我还没有设法使本地实例正常工作,但是可能还有其他与之无关的问题。

enter image description here

,

似乎zip版本已损坏。您可以下载.rar文件,它将运行。 .rar在DynamoDBLocal_lib文件夹中具有log4j-core-2.8.jar以及Log4j-api-2.x.jar,它对我有用。

,

我只是遇到了完全相同的问题。我尝试了来自欧洲(法兰克福)地区的tar和zip文件。问题仍然存在。我可以在类路径中看到log4j-core软件包,但是由于某种原因它没有被捡起。不确定其他AWS区域是否也损坏。

我通过要求我的一位同事共享他的DynamoDB文件夹来解决此问题。几个月前,他下载了它,它的运行就像一个咒语。

解决方案:AWS需要修复该软件包,否则请查看是否可以请同事帮忙。

,

我如何使它工作的是执行以下操作:

将jar文件的内容提取到单独的文件夹中

jar xf DynamoDBLocal_Orig.jar

将以下内容添加到pom.xml

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>${log4j.version}</version>
</dependency

编辑META-INF / MANIFEST.MF文件并添加

DynamoDBLocal_lib/log4j-core-2.13.3.jar

压缩到一个新的罐子

jar cmvf META-INF/MANIFEST.MF DynamoDBLocal.jar *

将DynamoDBLocal.jar从基本文件夹重命名为DynamoDBLocal_old.jar

将新创建的DynamoDBLocal.jar移至基本文件夹。

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.13.3下载log4j-core-2.13.3.jar

将log4j-core-2.13.3.jar放在DynamoDBLocal_lib文件夹中

运行

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb