Пользовательский плагин не обнаружен в EAR с помощью log4j2 API

Я мигрирую приложение EAR изlog4j вlog4j2, У меня были классы, расширяющие приложения, фильтры, макеты в разных банках EAR, и теперь я преобразовал их в плагины. Это означает, что у меня есть собственные плагины в более чем одной банке (предположим, 3 банки).

Я не пользуюсьpackages приписыватьlog4j2.xml и инициализирую систему регистрации с помощьюDlog4j.configurationFile Аргумент JVM, указывающий наlog4j2.xml расположение вMETA-INF ушей.

Добавление приведенного ниже плагина во все три проекта jar не сработало.

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <executions>
                <execution>
                    <id>log4j-plugin-processor</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <phase>process-classes</phase>
                    <configuration>
                        <proc>only</proc>
                        <annotationProcessors>
                            <annotationProcessor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</annotationProcessor>
                        </annotationProcessors>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Макет шаблона: В приведенной ниже схемеe это пользовательский шаблон, в котором написан специальный модуль преобразования шаблонов для преобразования этой строки.

<Pattern>%d %-5p [%c{1}] [EventId: %e] [%t] %m%n</Pattern>

Пользовательский плагин конвертера для макета шаблона выше (в jar1):

jar1 имеетLog4J2Plugins.dat файл подMETA-INF вorg.apache.. папка.

@Plugin(name = "EventPatternConverter", category = "Converter")
@ConverterKeys({"e"})

public class EventPatternConverter extends LogEventPatternConverter {

protected EventPatternConverter(String name, String style) {
    super(name, style);
}

public static EventPatternConverter newInstance(String[] options) {
  return new EventPatternConverter("e", "e");
}

@Override
public void format(LogEvent event, StringBuilder toAppendTo) {      
    String eventId= "";
    // Append empty string (OR) value        
    toAppendTo.append(eventId);
  }
}

Но я получаю ошибку ниже

ERROR Unrecognized format specifier [e]

Даже ни один из пользовательских плагинов не определяется как я получаюinvalid element для остальных пользовательских плагинов, которые доступны в jar2, jar3, и все они имеютLog4J2Plugins.dat файл.

ERROR File contains an invalid element or attribute "TestFilter"

я используюlog4j-api-2.4.jar, log4j-core-2.4.jar, log4j-jcl-2.4.jar, log4j-web-2.4.1.jar, commons-logging-1.1.1.jar баночки в ухе.

Я определил пользовательский плагин конвертера шаблонов и ожидаю, что этот конвертер будет применен ко всем макетам шаблонов, включая макет шаблонов по умолчанию, определенный с помощью<patternlayout>, Это правильно ?

Если да, пожалуйста, помогите, если кто-нибудь сталкивался с этой проблемой, и сообщите мне, если я ошибаюсь в определении пользовательского плагина, так как все они не обнаруживаются в jar-файлах в EAR.

Ответы на вопрос(1)

Ваш ответ на вопрос