gpt4 book ai didi

wildfly - 如何让 Log4j2 在 Wildfly 8.2 中工作

转载 作者:行者123 更新时间:2023-12-05 07:50:01 25 4
gpt4 key购买 nike

我正在通过 log4j2(版本 2.5)将 slf4j 用于部署到 Wildfly 8.2 服务器的 ear 应用程序(包括 ejb 和 web 应用程序)。

这就是父 POM 的样子:

<dependencyManagement>
<dependencies>
<!-- SLF4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j2-version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
...
</dependencies>
</dependencyManagement>

模块的 pom.xml 是:

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
...
</dependencies>

然后我将 log4j2.xml 放入耳朵的 META-INF 文件夹中

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Appenders>
<File name="FileLogger" fileName="app-simple.log">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{3} - %m%n"/>
</File>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="FileLogger"/>
</Root>
</Loggers>
</Configuration>

在所有这些和应用程序部署之后,什么都没有发生,没有错误,也没有生成日志文件,

我认为 Wildfly 日志记录子系统可能会干扰它。所以我在 META-INF 文件夹中添加了 jboss-deployment-structure.xml 以排除 Wildfly 的日志记录

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="logging"/>
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>

然后我得到了以下错误。

15:07:20,648 ERROR [stderr] (MSC service thread 1-5) ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

我确实发现这个post说的是同样的错误,根据答案我认为可能是log4j2版本有问题,所以我将版本降级到2.0.1,然后它没有提示配置文件但给出了这个新错误:

16:57:38,456 ERROR [stderr] (MSC service thread 1-5) ERROR StatusLogger Could not search jar file 'C:\Servers\wildfly-8.2.0.Final\standalone\deployments\test-ear.ear\lib\log4j-core.jar\org\apache\logging\log4j\core' for classes matching criteria: annotated with @Plugin file not found java.io.FileNotFoundException: C:\Servers\wildfly-8.2.0.Final\standalone\deployments\test-ear.ear\lib\log4j-core.jar\org\apache\logging\log4j\core (The system cannot find the path specified)

另外根据这个 post ,Wildfly 中的 log4j2 可能有问题,所以我尝试调整 log4j2 版本和配置,但没有成功。

那么如何在 Wildfly8 中设置 log4j2,谁能帮忙。非常感谢。

最佳答案

从所有文档中我可以找到 EAR 的 META-INF 文件夹不在类路径中,因此 Log4j 2 不会找到放置在那里的配置文件。我能找到的唯一文档提到必须创建一个可以放置通用配置文件的模块。

关于wildfly - 如何让 Log4j2 在 Wildfly 8.2 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com