【发布时间】:2015-09-10 10:16:38
【问题描述】:
我喜欢将WildFly-8.x 中的标准日志记录机制替换为log4j2。
我这样做的想法是将以下 jar 添加为模块:
log4j-api-2.3.jar
log4j-core-2.3.jar
并添加module.xml 以使服务器提供记录器。
由于我已经在通过 Maven 构建的应用程序中使用了 slf4j,因此我决定简单地将以下内容添加到我的 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 sn-p 指定到我记录某些内容的每个 maven 模块中(几乎是 java 类所在的每个模块)?
还有一个“糖果”问题: 4.) 我如何设置 log4j2 来压缩日志文件,就像使用 log4j(1)-extras 一样?
【问题讨论】:
-
要压缩文件,只需在日志文件名中添加扩展名 .zip 或 .gz 即可分别压缩
标签: java logging slf4j log4j2 wildfly-8