Log4j 警告:即使存在也没有找到 appender
Log4j warning: no appenders found even if it is there
我的项目在 spring 中,对于日志配置,我使用的是 log4j。我面临的问题是,在站点服务器
中启动 wildfly 时,我得到以下 warning
18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN No appenders could be found for logger (org.jboss.logging).
18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN Please initialize the log4j system properly.
18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
但是 log4j2.xml 文件在 project.war/WEB-INF/classes/
目录中。
我无法在我的本地或我们的服务器中模拟这个问题,因为相同的 war 工作正常,没有任何问题。
共享两个地方的 java 版本。
本地:
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)
站点:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
分享log4j2.xml
供大家参考
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="log-path">D:\Server\apache-tomcat-9.0.12\logs\</Property>
<Property name="archive">${log-path}\archive\</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} (%F:%L) %X{TransactionId} - %msg%n
</pattern>>
</PatternLayout>
</Console>
<File name="File-Appender" fileName="${log-path}/data.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} (%F:%L) %X{TransactionId} - %msg%n
</pattern>
</PatternLayout>
</File>
<RollingFile name="RollingFile-Appender"
fileName="${log-path}/data_back.log"
filePattern="${archive}/data.log.%d{yyyy-MM-dd-hh-mm}.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] (%F:%L) %X{TransactionId} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="30 MB"/>
</Policies>
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.project" level="debug" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="com.project" level="debug" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="org.hibernate" level="info" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Root level="info">
<AppenderRef ref="Console-Appender"/>
</Root>
</Loggers>
</Configuration>
请帮我解决这个问题。
谢谢
我正在根据您在下方的评论更新此答案。
log4j:warn 消息来自 Log4j 1.x。它告诉你它找不到任何配置。您显示的配置适用于 Log4j 2。
如果您打算同时使用 Log4j 1 和 Log4j 2,那么您必须为两者提供有效的配置。不要尝试登录到相同的文件。在这种情况下,您不应该使用 log4j-1.2-api.2.10.jar,因为它会替换 log4j-1.2.17.jar.
如果您只想使用 Log4j 2,则删除 log4j 1.2.17 jar 并保留 Log4j-1.2-api-2.10.0.jar 来自 Log4j 2。您还应该使用log4j-slf4j-impl-2.10.0.jar 而不是 slf4j-log4j12-1.7.25.jar。如果存在公共日志记录,那么您应该使用 log4j-jcl-2.10.0.jar。
我的项目在 spring 中,对于日志配置,我使用的是 log4j。我面临的问题是,在站点服务器
中启动 wildfly 时,我得到以下 warning18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN No appenders could be found for logger (org.jboss.logging).
18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN Please initialize the log4j system properly.
18:06:42,630 ERROR [stderr] (MSC service thread 1-7) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
但是 log4j2.xml 文件在 project.war/WEB-INF/classes/
目录中。
我无法在我的本地或我们的服务器中模拟这个问题,因为相同的 war 工作正常,没有任何问题。
共享两个地方的 java 版本。
本地:
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)
站点:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
分享log4j2.xml
供大家参考
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
<Properties>
<Property name="log-path">D:\Server\apache-tomcat-9.0.12\logs\</Property>
<Property name="archive">${log-path}\archive\</Property>
</Properties>
<Appenders>
<Console name="Console-Appender" target="SYSTEM_OUT">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} (%F:%L) %X{TransactionId} - %msg%n
</pattern>>
</PatternLayout>
</Console>
<File name="File-Appender" fileName="${log-path}/data.log" >
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} (%F:%L) %X{TransactionId} - %msg%n
</pattern>
</PatternLayout>
</File>
<RollingFile name="RollingFile-Appender"
fileName="${log-path}/data_back.log"
filePattern="${archive}/data.log.%d{yyyy-MM-dd-hh-mm}.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] (%F:%L) %X{TransactionId} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="30 MB"/>
</Policies>
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.project" level="debug" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="com.project" level="debug" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Logger name="org.hibernate" level="info" additivity="false">
<AppenderRef ref="File-Appender" level="debug"/>
<AppenderRef ref="RollingFile-Appender" level="debug"/>
<AppenderRef ref="Console-Appender" level="debug"/>
</Logger>
<Root level="info">
<AppenderRef ref="Console-Appender"/>
</Root>
</Loggers>
</Configuration>
请帮我解决这个问题。 谢谢
我正在根据您在下方的评论更新此答案。
log4j:warn 消息来自 Log4j 1.x。它告诉你它找不到任何配置。您显示的配置适用于 Log4j 2。
如果您打算同时使用 Log4j 1 和 Log4j 2,那么您必须为两者提供有效的配置。不要尝试登录到相同的文件。在这种情况下,您不应该使用 log4j-1.2-api.2.10.jar,因为它会替换 log4j-1.2.17.jar.
如果您只想使用 Log4j 2,则删除 log4j 1.2.17 jar 并保留 Log4j-1.2-api-2.10.0.jar 来自 Log4j 2。您还应该使用log4j-slf4j-impl-2.10.0.jar 而不是 slf4j-log4j12-1.7.25.jar。如果存在公共日志记录,那么您应该使用 log4j-jcl-2.10.0.jar。