package log; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log { //Logger實例 private Logger loger; //將Log類封裝成單實例的模式,獨立於其他類。以後要用到日誌的地方只要獲得Log的實例就可以方便使用 private static Log log; //構造函數,用於初始化Logger配置需要的屬性 private Log() { //獲得當前目錄路徑 String filePath = this.getClass().getResource("/").getPath().replaceAll("%20", " "); //找到log4j.properties配置文件所在的目錄(已經創建好) filePath = filePath.substring(1).replace("bin", "src"); //獲得日誌類loger的實例 loger = Logger.getLogger(this.getClass()); //loger所需的配置文件路徑 PropertyConfigurator.configure(filePath + "log4j.properties"); } static Log getLoger() { if (log != null) return log; else return new Log(); } //測試函數 public static void main(String args[]) { Log log = Log.getLoger(); for (int i = 0; i < 100000; i++) { log.loger.info("測試日誌"+i); } } }
log4j.properties 文件放在src下面
#定義DEBUG優先級,R爲日誌輸出目的的 log4j.rootLogger=DEBUG, R #設置日誌輸出類型,爲文件類型 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender #設置日誌文件名my.log log4j.appender.R.file=logs/my.log #設置日誌文件的大小 log4j.appender.R.MaxFileSize= 2KB #設置每天生成一個日誌 org.apache.log4j.DailyRollingFileAppender log4j.appender.R.DatePattern = '_'yyyy-MM-dd'.log' #每次在文件尾寫入新的日誌信息 log4j.appender.R.Append=true #日誌輸出信息格式類型 log4j.appender.R.layout=org.apache.log4j.PatternLayout #日誌輸出信息格式爲 換行、換行、日期、優先級、[類名]、日誌信息、換行 log4j.appender.R.layout.ConversionPattern=%n%n%d%p[%c]-%m%n
後再任何需要記錄日誌的地方只要使用下面語句就行了
Log log =Log.getLoger();
log.loger.info("123");