報錯:
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"放第一行就行。