类型不匹配:无法从 org.slf4j.Logger 转换为 org.apache.log4j.Logger
Type mismatch: cannot convert from org.slf4j.Logger to org.apache.log4j.Logger
我在 eclipse Mars 中配置了我的环境,但我遇到了 log4j 错误。我使用 spring 4 和 maven 作为依赖管理器。部分代码:
Eclipse 在这一行显示错误,等号之后的第二部分:
private static final Logger LOGGER = LoggerFactory.getLogger(PropertyConfiguration.class);
错误:
Type mismatch: cannot convert from org.slf4j.Logger to org.apache.log4j.Logger
我的属性配置在 com.myapp.bootstrap 中,xml 文件在 src/main/resources 中。
我的log4j.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="defaultAppender" class="org.apache.log4j.ConsoleAppender">
<param name="encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%t] %c{2}: %m%n" />
</layout>
</appender>
<logger name="com.myapp" additivity="false">
<level value="DEBUG" />
<appender-ref ref="defaultAppender" />
</logger>
<root>
<priority value="INFO" />
<appender-ref ref="defaultAppender" />
</root>
</log4j:configuration>
有人有什么想法吗?
感谢
检查您的导入。有时 Eclipse 选择导入 org.slf4j.Logger 而不是 org.apache.log4j.Logger.
使用两者的组合
import java.util.logging.Level;
import java.util.logging.Logger;
或
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
或
Slf4j 根据你的库
对我来说,我的一个 spring 项目 intellij 是罪魁祸首,它实际上是自动导入
import java.util.logging.Logger;
我必须使用以下内容手动更新导入
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
我正在 Spring 启动 IntelliJ,这修复了错误
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.*;
我在 eclipse Mars 中配置了我的环境,但我遇到了 log4j 错误。我使用 spring 4 和 maven 作为依赖管理器。部分代码:
Eclipse 在这一行显示错误,等号之后的第二部分:
private static final Logger LOGGER = LoggerFactory.getLogger(PropertyConfiguration.class);
错误:
Type mismatch: cannot convert from org.slf4j.Logger to org.apache.log4j.Logger
我的属性配置在 com.myapp.bootstrap 中,xml 文件在 src/main/resources 中。
我的log4j.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="defaultAppender" class="org.apache.log4j.ConsoleAppender">
<param name="encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%t] %c{2}: %m%n" />
</layout>
</appender>
<logger name="com.myapp" additivity="false">
<level value="DEBUG" />
<appender-ref ref="defaultAppender" />
</logger>
<root>
<priority value="INFO" />
<appender-ref ref="defaultAppender" />
</root>
</log4j:configuration>
有人有什么想法吗?
感谢
检查您的导入。有时 Eclipse 选择导入 org.slf4j.Logger 而不是 org.apache.log4j.Logger.
使用两者的组合
import java.util.logging.Level;
import java.util.logging.Logger;
或
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
或
Slf4j 根据你的库
对我来说,我的一个 spring 项目 intellij 是罪魁祸首,它实际上是自动导入
import java.util.logging.Logger;
我必须使用以下内容手动更新导入
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
我正在 Spring 启动 IntelliJ,这修复了错误
import org.slf4j.Logger;
import static org.slf4j.LoggerFactory.*;