类型不匹配:无法从 org.slf4j.Logger 转换为 org.apache.log4j.Logger

emo*_*ssi 0 java eclipse logging log4j maven

我在 eclipse Mars 中配置了我的环境,但是我在使用 log4j 时遇到了错误。我使用 spring 4 和 maven 作为依赖管理器。Hier 部分代码:

Eclipse 在这一行显示了一个错误,等号之后的第二部分:

private static final Logger LOGGER = LoggerFactory.getLogger(PropertyConfiguration.class);
Run Code Online (Sandbox Code Playgroud)

错误:

Type mismatch: cannot convert from org.slf4j.Logger to org.apache.log4j.Logger
Run Code Online (Sandbox Code Playgroud)

我的 propertyConfiguration 在 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>
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?

谢谢

小智 5

检查您的进口。有时 Eclipse 会选择导入 org.slf4j.Logger 而不是 org.apache.log4j.Logger。

使用两者的组合

import java.util.logging.Level;
import java.util.logging.Logger;
Run Code Online (Sandbox Code Playgroud)

或者

import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
Run Code Online (Sandbox Code Playgroud)

或者

Slf4j 根据您的库