【问题标题】:Type mismatch: cannot convert from org.slf4j.Logger to org.apache.log4j.Logger类型不匹配:无法从 org.slf4j.Logger 转换为 org.apache.log4j.Logger
【发布时间】:2015-11-18 07:06:03
【问题描述】:

我在 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

我的 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>

还有人有什么想法吗?

谢谢

【问题讨论】:

    标签: java eclipse maven logging log4j


    【解决方案1】:

    检查您的进口。有时 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 根据你的库

    【讨论】:

    • 更可能是用户错误,而不是“Eclipse 搞砸了”。在修复导入时,Eclipse 会显示一个选项列表,而 用户 做出了错误的选择,可能是因为速度太快并且没有阅读提供的选项。
    • 很确定我实际上已经让它自动选择我身上的那个,但没有给我选项,但已经有一段时间了,所以也许我记错了。
    【解决方案2】:

    对我来说,我的一个春季项目 intellij 是罪魁祸首,它实际上是自动导入

    import java.util.logging.Logger;
    

    我必须使用以下手动更新导入

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    

    【讨论】:

      【解决方案3】:

      我正在研究 Spring boot IntelliJ,这修复了错误

      import org.slf4j.Logger;
      import static org.slf4j.LoggerFactory.*;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-16
        • 2016-03-13
        • 2014-02-12
        • 2014-04-16
        • 2017-12-31
        • 1970-01-01
        • 2014-04-07
        • 2011-12-27
        相关资源
        最近更新 更多