log4j:ERROR Could not read configuration file [log4j.properties].
报错:
log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties
(系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at
java.io.FileInputStream.<init>(FileInputStream.java:106)
at
java.io.FileInputStream.<init>(FileInputStream.java:66)
at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:306)
at
org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:324)
at
snmp.GetSnmpInfo.<clinit>(GetSnmpInfo.java:32)
log4j:ERROR Ignoring
configuration file [log4j.properties].
解决:
方案1.将log4j.properties 这个文件从src的根目录 转移到 项目的根目录下面,即可~~~;
方案2.可以得到src的地址,获得:
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log { // Logger实例 public Logger loger; // 将Log类封装成单实例的模式,独立于其他类。以后要用到日志的地方只要获得Log的实例就可以方便使用 private static Log log; // 构造函数,用于初始化Logger配置需要的属性 private Log() { // 获得当前目录路径 String filePath = this.getClass().getResource("/").getPath(); // 找到log4j.properties配置文件所在的目录(已经创建好) filePath = filePath.substring(1).replace("bin", "src"); // 获得日志类loger的实例 loger = Logger.getLogger(this.getClass()); // loger所需的配置文件路径 PropertyConfigurator.configure(filePath + "log4j.properties"); } public static Log getLoger() { if (log != null) return log; else return new Log(); } }
其中:
// 获得当前目录路径 String filePath = this.getClass().getResource("/").getPath(); // 找到log4j.properties配置文件所在的目录(已经创建好) filePath = filePath.substring(1).replace("bin", "src"); // 获得日志类loger的实例 loger = Logger.getLogger(this.getClass()); // loger所需的配置文件路径 PropertyConfigurator.configure(filePath + "log4j.properties");
找到log4j.properties文件的位置。
方案3:
这个是个很奇怪的方案,至今没闹明白为什么就是在配置文件里的第一行加上:# MaiL或者别的注释就是别把"log4j.rootLogger = DEBUG,MAIL"放第一行就行。