我想要用log4j2
替换我的WildFly-8.x
中的标准日志机制。
我的做法是将以下jar包作为模块添加:
log4j-api-2.3.jar
log4j-core-2.3.jar
并添加一个module.xml
以通过服务器提供logger。
由于我已经在应用程序中使用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.) 我该如何在standalone-*.xml
中配置log4j2?我猜<loggers/>
和<handlers/>
只适用于内置系统?
3.) 我需要将上面的pom.xml
片段指定到每个Maven模块中吗?几乎每个包含Java类的模块都需要记录日志。
还有一个小问题:
4.) 我该如何设置log4j2以压缩日志文件,就像使用log4j(1)-extras一样?