Мне нравится заменить стандартный механизм каротажа на моем WildFly-8.x
на log4j2
.
Моя идея сделать это - добавить следующие банки как модули:
log4j-api-2.3.jar
log4j-core-2.3.jar
и добавить module.xml
, чтобы иметь регистратор, предоставленный сервером.
Так как я использую slf4j
в своем приложении, которое построено через Maven, я решил просто добавить следующие вещи в мой pom.xml
для создания моего EAR файла
<!-- versions are provided via private parent-pom -->
<!-- slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- slf4j to log4j2, needed??? -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<scope>provided</scope>
</dependency>
<!-- log4j2 api, do I really need this?? -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- log4j2 api, do I really need this?? -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<scope>provided</scope>
</dependency>
Итак, осталось несколько вопросов:
1.) Нужно ли мне дополнительные зависимости в моем jboss-deployment-structure.xml
, что-то похожее на это?
[...]
<ear-subdeployment-isolated>false</ear-subdeployment-isolated>
<deployment>
<dependencies>
[...]
<!-- name taken from my introduced module.xml -->
<module name="org.apache.logging.log4j2" slot="main" export="true" />
[...]
</dependencies>
</deployment>
2.) Как настроить log4j2 в моем standalone-*.xml
? Я думаю, что <loggers/>
и <handlers/>
будут работать только со встроенной системой?
3.) Нужно ли мне указывать фрагмент pom.xml
выше в каждом модуле maven, где я что-то записываю (это почти каждый модуль, в котором находится класс java)?
И немного "конфетный" вопрос: 4.) Как настроить log4j2 для сжатия лог файлов, как это было сделано с помощью log4j (1) -extras?