dynamodb local: ОШИБКА StatusLogger Log4j2 не удалось найти реализацию ведения журнала

#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 необходимо исправить пакет, в противном случае посмотрите, можете ли вы попросить коллегу помочь вам.