首頁 >Java >java教程 >Java中Log4j日誌怎麼用

Java中Log4j日誌怎麼用

王林
王林轉載
2023-05-05 14:10:112714瀏覽

為什麼要用日誌?

我們知道,程式在運行過程中會產生很多很多信息,例如在幾點幾分的時候運行了,運行的結果是怎麼樣的?為了我們更了解程式運作的情況,可以透過日誌來查看,日誌可以在控制台輸出,也可以輸出至指定的文件內,在下面的文章中具體的給大家介紹。

下載:

Log4J是Apache公司的開源項目,用於日誌處理。下載網址:

https://logging.apache.org/log4j/2.x/download.html

Java中Log4j日誌怎麼用

下載完成後,我們可以得到一個後綴名為jre的套件。

詳細步驟:

一、開啟IDEA

可以新建一個項目,然後在專案內新建一個lib包,把log4j.jar這個包放進去。

Java中Log4j日誌怎麼用

然後在src內建立一個類別:

Java中Log4j日誌怎麼用

依照圖的步驟即可:

Java中Log4j日誌怎麼用

在這裡把jre的套件加入即可:

Java中Log4j日誌怎麼用

#二、建立日誌物件

當完成上述操作之後,即可在類別裡面建立物件:

注意:這裡選擇的Logger套件是要來自apache的包,這裡一定不要選錯!

Java中Log4j日誌怎麼用

import org.apache.log4j.Logger;

public class logTest {

    public static void main(String[] args) {

        //导入对象:
        Logger log = Logger.getLogger(logTest.class);
        log.error("用于记录error级别的信息"); //记录严重错误
        log.warn("用于记录warn级别的信息");   //记录警告
        log.info("用于记录info级别的信息");   //记录信息
        log.debug("用于记录debug级别的信息"); //记录debug
    }
}

接著我們需要建立設定檔:

#新建一個檔案file,檔案後綴名一定要是properties

Java中Log4j日誌怎麼用

#然後新建一個文件,名字可以設為:resources,並且把格式改為如下圖:

Java中Log4j日誌怎麼用

然後把剛剛建造的設定檔放入這個文件內即可:

Java中Log4j日誌怎麼用

我們需要在log.properties內配置以下三個最要資訊:

  • 配置你的程式將什麼等級的日誌記錄到日誌檔案中

  • 指定日誌輸出的目的地,是將日誌記錄到程式的控制台(瞬時狀態的)還是在磁碟的某個文件中(持久化保存)

  • 指定輸出到控制台或文件中的日誌資訊的輸出格式,或者說以什麼樣的格式記錄這些日誌資訊。

設定的範本如下:

直接複製到log.properties內即可:

# 1.設定輸出等級info,可以將info以及更高級別的記錄到日誌檔案中,但其更低的例如debug等級就不會記錄到日誌檔案中
# stdout是設定的日誌記錄的目的地(名字可以隨便起的當時要對應上)
log4j.rootLogger=info,stdout

#2.設定日誌記錄的目的地(ConsoleAppender是記錄到控制台)
log4j.appender.stdout=org.apache. log4j.ConsoleAppender

#3.設定記錄的格式或樣式(System.err是紅色樣式、System.out是黑色樣式)
log4j.appender.stdout.Target=System.err
# 設定記錄的格式
#PatternLayout是依照我們自訂規則佈局(%d %l %m %n就是指定的規則佈局)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n

這個配置資訊我們可以先不看,完成上面的配置,我們先運行一下上面的那段程式碼:

Java中Log4j日誌怎麼用

如果出現這樣,表示是正確的。我們重新寫一段程式碼來看看這個日誌的功能:

import org.apache.log4j.Logger;

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {

        Logger logger = Logger.getLogger(test2.class);
        Scanner input = new Scanner(System.in);
        try{
            System.out.println("请输入除数:");
            int a = input.nextInt();
            logger.debug("bug:输入除数"+a);
            logger.info("info:输入除数"+a);
            System.out.println("请输入被除数:");
            int b = input.nextInt();
            logger.debug("bug:输入除数"+b);
            logger.info("info:输入除数"+b);
            int c = a/b;

            //把结果记录到日志文件中
            logger.debug("bug:结果"+c);
            logger.info("info:结果"+c);
            System.out.println("结果是:"+c);

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }finally {
            System.out.println("程序结束!!");
        }
    }

}

這是一段除法的運算,先運行,看效果:

Java中Log4j日誌怎麼用

我們發現,我們在程式內執行的每一步,日誌都記錄了下來,因為在配置文件內設置的是輸出至控制台,所以直接在控制台顯示了日誌信息,如果需要輸出至指定文件,需要配置如下:

Java中Log4j日誌怎麼用

然後再執行除法的程式:

Java中Log4j日誌怎麼用

在控制台沒有顯示日誌資訊了,因為已經設定成輸出到指定的檔案內: 根據設定的路徑,我們可以看到:

Java中Log4j日誌怎麼用

##這樣的記錄有時間信息,有程序名信息,還有在程序的第幾行發生了什麼的信息全部被記錄了下來。當然輸出的格式還有很多很多,可以根據需要去另外設定即可!

關於Log4j日誌小應學長就講到這裡,完成這些步驟,一個簡單的日誌記錄就完成了,下面日誌輸出的等級也需要注意。

日誌的輸出等級:

1.off:最高等級,用於關閉所有日誌記錄

2.fatal 指出每個嚴重的錯誤時間將會導致應用程式的退出
3.error 指雖然傳送錯誤事件,但仍不影響系統的運作
4.warn 指明會出現潛在的錯誤情形
5.info 一般使用者記錄程式的執行過程
6.debug 一般用於調試的資訊記錄
7.all 最低級別,用於開啟所有的日誌記錄

#

以上是Java中Log4j日誌怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除