溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中Log4j日志怎么用

發(fā)布時(shí)間:2022-03-11 14:00:56 來源:億速云 閱讀:166 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Java中Log4j日志怎么用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

為什么要用日志?

我們知道,程序在運(yùn)行過程中會(huì)產(chǎn)生很多很多信息,比如在幾點(diǎn)幾分的時(shí)候運(yùn)行了,運(yùn)行的結(jié)果是怎么樣的?為了我們更加了解程序運(yùn)行的情況,可以通過日志來查看,日志可以在控制臺(tái)輸出,也可以輸出至指定的文件內(nèi),在下面的文章中具體的給大家介紹。

下載:

Log4J是Apache公司的開源項(xiàng)目,用于日志處理。下載地址:

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

Java中Log4j日志怎么用

下載完成后,我們可以得到一個(gè)后綴名為jre的包。

詳細(xì)步驟:

一、打開IDEA

可以新建一個(gè)項(xiàng)目,然后在項(xiàng)目內(nèi)新建一個(gè)lib包,把log4j.jar這個(gè)包放進(jìn)去。

Java中Log4j日志怎么用

然后在src內(nèi)創(chuàng)建一個(gè)類:

Java中Log4j日志怎么用

按照圖的步驟即可:

Java中Log4j日志怎么用

在這里把jre的包添加即可:

Java中Log4j日志怎么用

二、創(chuàng)建日志對象

當(dāng)完成上述操作后,即可在類里面建立對象:

注意:這里選擇的Logger包是要來自apache的包,這里一定不要選錯(cuò)!

Java中Log4j日志怎么用

import org.apache.log4j.Logger;

public class logTest {

    public static void main(String[] args) {

        //導(dǎo)入對象:
        Logger log = Logger.getLogger(logTest.class);
        log.error("用于記錄error級(jí)別的信息"); //記錄嚴(yán)重錯(cuò)誤
        log.warn("用于記錄warn級(jí)別的信息");   //記錄警告
        log.info("用于記錄info級(jí)別的信息");   //記錄信息
        log.debug("用于記錄debug級(jí)別的信息"); //記錄debug
    }
}

接著我們需要?jiǎng)?chuàng)建配置文件:

新建一個(gè)文件file,文件后綴名一定要是properties

Java中Log4j日志怎么用

然后新建一個(gè)文件,名字可以設(shè)為:resources,并且把格式改為如下圖:

Java中Log4j日志怎么用

然后把剛剛建的配置文件放入這個(gè)文件內(nèi)即可:

Java中Log4j日志怎么用

我們需要在log.properties內(nèi)配置以下三個(gè)最要信息:

  • 配置你的程序?qū)⑹裁醇?jí)別的日志記錄到日志文件中

  • 指定日志輸出的目的地,是將日志記錄到程序的控制臺(tái)(瞬時(shí)狀態(tài)的)還是在磁盤的某個(gè)文件中(持久化保存)

  • 指定輸出到控制臺(tái)或者文件中的日志信息的輸出格式,或者說以什么樣的格式記錄這些日志信息。

設(shè)置的模板如下:

直接復(fù)制到log.properties內(nèi)即可:

# 1.設(shè)置輸出級(jí)別info,可以將info以及更高級(jí)別的記錄到日志文件中,但其更低的比如debug級(jí)別就不會(huì)記錄到日志文件中
# stdout是設(shè)置的日志記錄的目的地(名字可以隨便起的當(dāng)時(shí)要對應(yīng)上)
log4j.rootLogger=info,stdout

#2.設(shè)置日志記錄的目的地(ConsoleAppender是記錄到控制臺(tái))
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

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

這個(gè)配置信息我們可以先不看,完成上面的配置,我們先運(yùn)行一下上面的那段代碼:

Java中Log4j日志怎么用

如果出現(xiàn)這樣,說明是正確的。 我們重新寫一段代碼來看看這個(gè)日志的功能:

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("請輸入除數(shù):");
            int a = input.nextInt();
            logger.debug("bug:輸入除數(shù)"+a);
            logger.info("info:輸入除數(shù)"+a);
            System.out.println("請輸入被除數(shù):");
            int b = input.nextInt();
            logger.debug("bug:輸入除數(shù)"+b);
            logger.info("info:輸入除數(shù)"+b);
            int c = a/b;

            //把結(jié)果記錄到日志文件中
            logger.debug("bug:結(jié)果"+c);
            logger.info("info:結(jié)果"+c);
            System.out.println("結(jié)果是:"+c);

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

}

這是一段除法的運(yùn)算,先運(yùn)行,看效果:

Java中Log4j日志怎么用

我們發(fā)現(xiàn),我們在程序內(nèi)執(zhí)行的每一步,日志都記錄了下來,因?yàn)樵谂渲梦募?nèi)設(shè)置的是輸出至控制臺(tái),所以直接在控制臺(tái)顯示了日志信息,如果需要輸出至指定文件,需要配置如下:

Java中Log4j日志怎么用

然后再運(yùn)行除法的程序:

Java中Log4j日志怎么用

在控制臺(tái)沒有顯示日志信息了,因?yàn)橐呀?jīng)設(shè)置成輸出至指定的文件內(nèi): 根據(jù)設(shè)置的路徑,我們可以看到:

Java中Log4j日志怎么用

這樣的記錄有時(shí)間信息,有程序名信息,還有在程序的第幾行發(fā)生了什么的信息全部被記錄了下來。 當(dāng)然輸出的格式還有很多很多,可以根據(jù)需要去另外設(shè)置即可!

關(guān)于Log4j日志小應(yīng)學(xué)長就講到這里,完成這些步驟,一個(gè)簡單的日志記錄就完成了,下面日志輸出的級(jí)別也需要注意。

日志的輸出等級(jí):

1.off:最高等級(jí),用于關(guān)閉所有日志記錄
2.fatal 指出每個(gè)嚴(yán)重的錯(cuò)誤時(shí)間將會(huì)導(dǎo)致應(yīng)用程序的退出
3.error 指雖然發(fā)送錯(cuò)誤事件,但仍然不影響系統(tǒng)的運(yùn)行
4.warn 指明會(huì)出現(xiàn)潛在的錯(cuò)誤情形
5.info 一般用戶記錄程序的運(yùn)行過程
6.debug 一般用于調(diào)試的信息記錄
7.all 最低級(jí)別,用于打開所有的日志記錄

感謝各位的閱讀!關(guān)于“Java中Log4j日志怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI