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

旧时模样 提交于 2020-12-25 01:51:44

问题


This is the first time that this issue has occurred to me, I have used DynamoDB local on Linux and Mac and most of the time it worked fine, and now I'm on a different Mac machine, it just throws an error.

The error message that I got was:

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

I tried installing it via homebrew, but it's throwing the same error. I may have messed up something in my machine or may have missed some configuration.

Below is the screenshot from when I have tried to run it:

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


回答1:


According to this AWS Support Forum response by an AWS person this problem doesn't affect the working of the DynamoDB local instance.

They do intend to fix it so that the messages isn't displayed but it doesn't make a functional difference.

I haven't yet managed to make my local instance work but there may be other, un-associated, issues with that.




回答2:


It seems like zip versions are corrupted. You can download .rar file, it will work. .rar has log4j-core-2.8.jar along with Log4j-api-2.x.jar inside the DynamoDBLocal_lib folder and it is working for me.




回答3:


I just had exactly the same problem. I tried both the tar and the zip file from Europe (frankfurt) region. The problem persisted. I can see the log4j-core package in the classpath, but somehow it doesn't get picked up. Not sure if the other AWS regions are corrupted too.

I solved it by asking a colleague of mine to share his DynamoDB folder. He downloaded it a few months ago, and it's working like a charm.

Solution: AWS needs to fix the package, otherwise see if you can ask a colleague to help you out.




回答4:


How I got this to work is to do the following:

Extract the contents of the jar file to a seperate folder

jar xf DynamoDBLocal_Orig.jar

Add the following to the pom.xml

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

Edit the META-INF/MANIFEST.MF file and add

DynamoDBLocal_lib/log4j-core-2.13.3.jar

Compress to a new jar

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

Rename DynamoDBLocal.jar from the base folder to DynamoDBLocal_old.jar

Move the newly created DynamoDBLocal.jar to the base folder.

Download the log4j-core-2.13.3.jar from https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.13.3

Place the log4j-core-2.13.3.jar inside the DynamoDBLocal_lib folder

Run

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


来源:https://stackoverflow.com/questions/64549078/dynamodb-local-error-statuslogger-log4j2-could-not-find-a-logging-implementatio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!