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

dynamodb local: ERROR StatusLogger Log4j2 could not find a logging implementation

这是我第一次遇到这个问题,我在 Linux 和 Mac 上使用本地 DynamoDB,大部分时间都运行良好,现在我在不同的 Mac 机器,它只是抛出一个错误。

我收到的错误消息是:

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

我尝试通过自制软件安装它,但它抛出了同样的错误。我可能在我的机器上搞砸了一些东西或者可能错过了一些配置。

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

参考:
Dynamo 数据库本地:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

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

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

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

他们确实打算修复它,以便不显示消息,但这不会造成功能上的差异。

我还没有设法让我的本地实例正常工作,但可能还有其他 un-associated 问题。