gpt4 book ai didi

java - log4j :WARN No appenders could be found for logger (org. springframework.web.filter.CharacterEncodingFilter)。使用 log4j2

转载 作者:行者123 更新时间:2023-11-28 22:49:23 25 4
gpt4 key购买 nike

我正在从 log4j 1.2 迁移到 log4j 2。

我将整个配置放入 log4j2.properties 文件中。

我注意到在启动 tomcat 时我的日志中收到了一条新的错误消息:

log4j:WARN No appenders could be found for logger (org.springframework.web.filter.CharacterEncodingFilter). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我已经通过我之前的日志进行了验证,并且我之前没有这个警告。

这是我之前的配置(在 log4j.properties 文件中):

log4j.rootLogger=INFO, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd-MM HH:mm:ss} %p %t %c - %m%n
log4j.logger.com.example=DEBUG
log4j.logger.org.springframework=INFO

这是新的(在 log4j2.properties 中):

appender.console.type = Console
appender.console.name = ConsoleAppender
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d %p %t %c - %m%n

loggers = log1, log2

logger.log1.name = org.springframework
logger.log1.level = INFO
logger.log1.appenderRef = ConsoleAppender

logger.log2.name = com.example
logger.log2.level = DEBUG
logger.log2.appenderRef = ConsoleAppender

rootLogger.level = ERROR
rootLogger.appenderRef.stdout.ref = ConsoleAppender

到目前为止,我所了解的是:

  • 我创建了一个名为 ConsoleAppender 的 Console 类型的 appender
  • 我创建了两个记录器,每个都进入 ConsoleAppender,一个在 org.springframework(信息级别)上,另一个在 com.example(信息级别)上

我使用 this page尝试了解如何进行迁移。

您是否看到关于为什么我应该收到这条特定消息的任何解释?

最佳答案

this answer 所示,问题可能是因为我也在使用 slf4j-log4j12(但已经是最新版本)并且它与其他 log4j api 冲突:

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>

所以我按照指示做了,删除了 org.slf4j:slf4j-log4j12 依赖项并添加了 log4j-api 和 log4j-slf4j-impl 依赖项:

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

... 并且知道它似乎解决了错误(它不再出现在我的起始日志中

为了更清楚,我首先只添加了上述三个依赖项而没有删除 slf4j-log4j12 一个,我也将其写入日志:

SLF4J: Found binding in [jar:file:/myuser/apache-tomcat-7.0.75/webapps/mywebapp/WEB-INF/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/myuser/apache-tomcat-7.0.75/webapps/mywebapp/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

删除 slf4j-log4j12 依赖后,整个错误日志都消失了。

关于java - log4j :WARN No appenders could be found for logger (org. springframework.web.filter.CharacterEncodingFilter)。使用 log4j2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45463853/

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