我正在使用 Log4j - 2.22.1。版本和 Wildfly- 31.0.1.Final 记录器在本地打印但是,在 openshift 上部署它时,记录器在部署 Ear 后不会打印,我检查了部署前打印的日志,发现了这样的错误
ERROR [stderr] (MSC service thread 1-3) ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
这是使用的依赖项
implementation 'org.apache.logging.log4j:log4j-core:2.22.1'
implementation 'org.apache.logging.log4j:log4j-api:2.22.1'
尝试将此依赖项添加到库中但没有成功
implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.21.1'
尝试添加 log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %m%n"/>
</Console> <File name="File" fileName="logs/app.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %m%n"/>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
<Logger name="org.jboss" level="info" additivity="false">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Logger>
</Loggers>
</Configuration>
并在 jboss-deployment 中排除了 Wildfly 日志记录子系统,但没有起作用
<exclude-subsystems>
<subsystem name="logging"/>
</exclude-subsystems>
从log4j2升级到slf4j-2.x 解决了问题