#log4j2 #amazon-dynamodb-local
#log4j2 #amazon-dynamodb-local
Вопрос:
Эта проблема возникла у меня впервые, я использовал DynamoDB local в Linux и Mac, и большую часть времени он работал нормально, и теперь я на другом компьютере Mac, он просто выдает ошибку.
Сообщение об ошибке, которое я получил, было:
ERROR StatusLogger Log4j2 could not find a logging implementation.
Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
Я попытался установить его через homebrew, но он выдает ту же ошибку. Возможно, я что-то перепутал на своем компьютере или пропустил какую-то конфигурацию.
Ниже приведен снимок экрана, когда я пытался его запустить:
Ссылка:
Dynamo DB Local: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
Ответ №1:
Согласно этому ответу на форуме поддержки AWS от сотрудника AWS, эта проблема не влияет на работу локального экземпляра DynamoDB.
Они намерены исправить это, чтобы сообщения не отображались, но это не имеет функционального значения.
Мне еще не удалось заставить мой локальный экземпляр работать, но с этим могут быть другие, не связанные проблемы.
Комментарии:
1. Это должно быть лучшим ответом imo. В спешке я прочитал только первые два предложения. Последнее указывает на то, что он использует запасной вариант, поэтому проблем с использованием действительно нет. Я действительно с ними использовал бы уровень предупреждения журнала вместо ОШИБКИ в этом выводе.
Ответ №2:
Как я заставил это работать, нужно сделать следующее:
Извлеките содержимое файла 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 в базовую папку.
Загрузите log4j-core-2.13.3.jar от https://mvnrepository.com/artifact/org.apache .logging.log4j/log4j-core/2.13.3
Поместите log4j-core-2.13.3.jar внутри папки DynamoDBLocal_lib
Выполнить
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
Комментарии:
1. На данный момент это самое утомительное решение, но оно работает лучше всего. Спасибо!
Ответ №3:
Похоже, что zip-версии повреждены. Вы можете загрузить файл .rar, он будет работать. .rar имеет log4j-core-2.8.jar вместе с Log4j-api-2.x.jar внутри папки DynamoDBLocal_lib, и она работает для меня.
Комментарии:
1. Я бы сказал, что у них возникла ситуация с FUBAR на Amazon. Я загружаю версии
.zip
и.tar
и получаю эти ошибки. Даже уamazon/dynamodb-local
docker есть та же ошибка.2. Могу подтвердить, что это происходит с помощью amazon / dynamodb-local docker при новой установке, выполненной в 08:30 UTC 7 ноября 2020 года.
Ответ №4:
У меня только что была точно такая же проблема. Я попробовал как tar, так и zip-файл из региона Европы (Франкфурт). Проблема сохранялась. Я вижу пакет log4j-core в пути к классу, но почему-то он не обнаруживается. Не уверен, повреждены ли другие регионы AWS.
Я решил это, попросив моего коллегу поделиться своей папкой DynamoDB. Он скачал его несколько месяцев назад, и он работает как шарм.
Решение: AWS необходимо исправить пакет, в противном случае посмотрите, можете ли вы попросить коллегу помочь вам.