Java中使用Log4j記錄錯誤、輸出日志


簡介:

Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制台、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

官方站點:http://logging.apache.org/log4j/

Log4j配置:

第一步:加入log4j-1.2.8.jar到lib下。

第二步:在CLASSPATH下建立log4j.properties。內容如下:

#定義DEBUG優先級,R為日志輸出目的的   
log4j.rootLogger=DEBUG, R   
#設置日志輸出類型,為文件類型   
log4j.appender.R=org.apache.log4j.FileAppender   
#設置日志文件名my.log   
log4j.appender.R.file=weather.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.java

package com.kyny.weather.log;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

/**
 * 日志類
 * @author zhoucan
 *
 */
public class Log {

    //Logger實例
    public Logger logger = null;
    
    //將Log類封裝為單例模式
    private static Log log;
    
     //構造函數,用於初始化Logger配置需要的屬性
    private Log() {
         //獲得當前目錄路徑   
        String filePath=this.getClass().getResource("/").getPath();   
        //找到log4j.properties配置文件所在的目錄(已經創建好)   
        filePath=filePath.substring(1).replace("bin", "src");   
        //獲得日志類logger的實例   
        logger=Logger.getLogger(this.getClass());   
        //logger所需的配置文件路徑   
        PropertyConfigurator.configure(filePath+"log4j.properties"); 
    }
    
    public static Log getLogger() {
        if(log != null) return log;
        else return new Log();
    }
}

使用示例:

Log log = Log.getLogger();
log.logger.error("XXX", e);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM