AWS Lambda не распознает файл конфигурации log4j2.xml - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь войти в свою лямбда-функцию aws с помощью log4j2 Loggers, но, к сожалению, log4j2.xml не может быть найден, и я просто вижу в журналах CloudTrail стандартное сообщение об ошибке

"ОШИБКА StatusLogger Не найден файл конфигурации log4j2. Используется по умолчанию конфигурация: запись только ошибок в консоль. "

Если я запускаю приложение локально (вызываю метод объекта в методе main), все работает нормально). Я следовал официальной документации AWS, но это не помогло.

Здесь можно развернуть фиктивный проект: https://github.com/dimarzio/testlambdalog

Единственное, что отличается - я использую плагин shadowJar ... Интересно, что когда я просматриваю * all.jar, log4j2.xml помещается прямо в корень * .jar

1 Ответ

0 голосов
/ 17 апреля 2019

Я нашел корень проблемы, и это был фактически плагин shadowJar!Структура файлов и папок, которая будет сгенерирована внутри исполняемого архива jar, не полностью распознается средой выполнения lambda.

Чтобы заставить ее работать (если вы используете gradle), прочитайте этот сайт документации: https://docs.aws.amazon.com/lambda/latest/dg/create-deployment-pkg-zip-java.html

Ключом является задача gradle buildZip.

Поэтому к использованию плагина shadowJar для обеспечения AWS Lambda необходимо относиться с осторожностью.Как правило, он работает нормально, но можно столкнуться с проблемами. Я соответствующим образом обновил репозиторий Github.

...