为什么 spring 找不到 log4j appender
Why isn't spring finding log4j appender
在我的java主要方法中我有
LogManager.getLogger().error("Log message");
new ClassPathXmlApplicationContext("spring_config.xml");
产生
Log message
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
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 配置良好,问题出在使用 slf4j 的 spring。
我不相信 log4j2.xml
或 spring_config.xml
提供任何相关信息。如果你想看,请在评论中询问。
我怀疑问题出在库版本上,可能是某种冲突,所以你得到我的 maven pom.xml
,无论如何依赖项。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.5.RELEASE</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-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.16</version>
</dependency>
我想知道 slfj4-log4j12,但我看不出有什么更好的。 slf4j 是否正在尝试连接到 log4j v1?这种日志库版本的泥潭让人抓狂
如何消除这些警告?
提供 log4j.xml 配置会停止警告并启用 spring 日志记录,因此问题出在 slf4j 实现 slf4j-log4j12
需要 log4j 版本 1 配置文件。
将 slf4j 实现依赖替换为
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.6.2</version>
</dependency>
仅使用 log4j2.xml 配置导致 Spring 输出出现在控制台中。
在我的java主要方法中我有
LogManager.getLogger().error("Log message");
new ClassPathXmlApplicationContext("spring_config.xml");
产生
Log message
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
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 配置良好,问题出在使用 slf4j 的 spring。
我不相信 log4j2.xml
或 spring_config.xml
提供任何相关信息。如果你想看,请在评论中询问。
我怀疑问题出在库版本上,可能是某种冲突,所以你得到我的 maven pom.xml
,无论如何依赖项。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.5.RELEASE</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-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.16</version>
</dependency>
我想知道 slfj4-log4j12,但我看不出有什么更好的。 slf4j 是否正在尝试连接到 log4j v1?这种日志库版本的泥潭让人抓狂
如何消除这些警告?
提供 log4j.xml 配置会停止警告并启用 spring 日志记录,因此问题出在 slf4j 实现 slf4j-log4j12
需要 log4j 版本 1 配置文件。
将 slf4j 实现依赖替换为
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.6.2</version>
</dependency>
仅使用 log4j2.xml 配置导致 Spring 输出出现在控制台中。