Пользовательский плагин не обнаружен в 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.