Я использую плагин maven-assembly-plugin для компиляции толстой банки. У меня log4j2 и эти зависимости в моем pom.xml:
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.sumologic.plugins.log4j</groupId>
<artifactId>sumologic-log4j2-appender</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
</dependencies>
Когда я настраиваю регистратор в XML-файле конфигурации log4j, я указываю SumoAppender и приложение вывода консоли.
Когда я запускаю основное приложение через mvn exec:java, приложение SumoLogic работает.
Однако, когда я компилирую толстую банку и запускаю приложение через java -jar fatjar.jar, SumoLogic Appender вообще не запускается, и никаких ошибок не возникает.
Я проверил, что класс существует в моем приложении с помощью Class.forName("com.sumologic.log4j.SumoLogicAppender"), и пакет действительно существует.
Кто-нибудь знает, что происходит?




У меня была очень похожая проблема - в моем случае mvn camel: run работал нормально, а java -jar - нет.
Добавление пакета sumologic в файл конфигурации log4j2 помогло:
<?xml version = "1.0" encoding = "UTF-8"?>
<Configuration packages = "com.sumologic.log4j">
<Appenders>
<SumoLogicAppender
....
Та же стратегия, что и при создании кастомных приложений - Как создать собственное приложение в log4j2?