导入org.apache.log4j无法解析

时间:2016-07-13 20:11:11

标签: java apache logging log4j log4j2

Eclipse,Selenium,W​​indows

导入org.apache.log4j无法解析

我已经遵循了我能找到的所有记录的步骤,即:

1)以下两个jar文件位于项目构建路径中: log4j-core-2.6.2.jar和log4j-api-2.6.2.jar

2)以上两个jar文件位于以下文件夹中: C:\蚀\ Apache的log4j的-2.6.2槽

3)上面的文件夹在我的系统CLASSPATH环境变量C:\ eclipse \ apache-log4j-2.6.2-bin

4)项目在项目根目录

中包含以下log4j.properties文件
    # This sets the global logging level and specifies the appenders
log4j.rootLogger=INFO, theConsoleAppender
    # settings for the console appender
    log4j.appender.theConsoleAppender=org.apache.log4j.ConsoleAppender
    log4j.appender.theConsoleAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.theConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

5)我已经清理了项目

6)导入失败的原因是:import org.apache.log4j.Logger;

间歇性地我也收到此错误消息

“类型org.apache.log4j.Logger无法解析。它在第一行间接引用了所需的.class文件”:

package com.example;

当我执行项目时,此错误消失 - >清洁

但导入log4j的错误仍然存​​在。

任何想法都会非常感激。

2 个答案:

答案 0 :(得分:8)

如果您收到此错误,则表示您的应用程序或其某个依赖项使用Log4j 1.2 API。

org.apache.log4j包是Log4j 1.2命名空间。 Log4j 2使用org.apache.logging.log4j命名空间。 2015年Log4j 1.2 became End of Life,建议用户升级到Log4j 2。

你的类路径中已经有正确的log4j-api-2.x.jar和log4j-core-2.x.jar,唯一缺少的是log4j-1.2-api-2.x.jar。 log4j-1.2-api是一个适配器模块,可确保将应用程序对Log4j 1.2 API的调用委派给Log4j 2实现。

请确保从类路径中删除旧的log4j-1.2.x.jar。

最后,您显示的配置似乎适用于Log4j 1.2,并且不适用于Log4j 2. Log4j 2手册有许多示例配置。 (单独的文档是升级的原因,它在Log4j 2中要好得多。)例如,参见Console appenderFile appender上的部分。

Log4j 2也支持properties configuration format(但语法与log4j 1.2属性格式不同)。

答案 1 :(得分:2)

检查您的 ecplise 版本和 log4j 依赖版本。如果 1.2.17 不起作用,请检查 1.2.16。正如我所做的那样,它开始工作了。