Eclipse,Selenium,Windows
导入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的错误仍然存在。
任何想法都会非常感激。
答案 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 appender或File appender上的部分。
Log4j 2也支持properties configuration format(但语法与log4j 1.2属性格式不同)。
答案 1 :(得分:2)
检查您的 ecplise 版本和 log4j 依赖版本。如果 1.2.17 不起作用,请检查 1.2.16。正如我所做的那样,它开始工作了。