溫馨提示×

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

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

如何理解Log4j配置文件中代碼的含義

發(fā)布時(shí)間:2021-10-14 15:51:59 來(lái)源:億速云 閱讀:197 作者:柒染 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解Log4j配置文件中代碼的含義,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

        通過(guò)Log4j可以方便的對(duì)項(xiàng)目中的日志進(jìn)行處理——控制日志信息輸出的目的地(控制臺(tái)、文件、GUI組件或NT事件記錄器)、控制每一條日志的輸出格式(HTMLLayout布局格式、PatternLayout布局格式、SimpleLayout布局格式或TTCCLayout)、控制所輸出日志信息的級(jí)別(DEBUG級(jí)別、INFO級(jí)別、WARN級(jí)別、ERROR級(jí)別或FATAL級(jí)別)等。下面從一個(gè)簡(jiǎn)單的例子入手來(lái)詳細(xì)介紹Log4j的使用方法:

        工程結(jié)構(gòu)如下圖:

如何理解Log4j配置文件中代碼的含義

        TestLog4j.java文件中的代碼:

package com.ghj.test;

import org.apache.log4j.Logger;

public class TestLog4j {

	private static final Logger logger = Logger.getLogger(TestLog4j.class);

	public static void main(String[] args) {
		logger.debug("This log  comes from the DEBUG level!");
		logger.info("This log  comes from the INFO level!");
		logger.warn("This log  comes from the WARN level!");
		logger.error("This log  comes from the ERROR level!");
    }
}

        log4j.properties文件中的代碼:

log4j.rootLogger=DEBUG,Console,DailyRollingFile

#將日志信息輸出到控制臺(tái)
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Encoding=UTF-8
log4j.appender.Console.layout=org.apache.log4j.SimpleLayout

#將日志信息輸出到操作系統(tǒng)D盤(pán)根目錄下的index.html文件中
log4j.appender.DailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.Encoding=UTF-8
log4j.appender.DailyRollingFile.layout=org.apache.log4j.HTMLLayout
log4j.appender.DailyRollingFile.File=D\:\\index.html

       【0分下載上面源碼工程

        通過(guò)上面的例子我們知道配置log4j的語(yǔ)法如下:

log4j.rootLogger = level ,appenderName1 ,appenderName2 ,... ,appenderNameN

#日志信息輸出目的地1
log4j.appender.appenderName1 = appender類的完全限定名
log4j.appender.appenderName1.option1 = value1
  ...
log4j.appender.appenderName1.optionN = valueN

#日志信息輸出目的地2
log4j.appender.appenderName2 = appender類的完全限定名
log4j.appender.appenderName2.option1 = value1
  ...
log4j.appender.appenderName2.optionN = valueN

  ......

#日志信息輸出目的地N
log4j.appender.appenderNameN = appender類的完全限定名
log4j.appender.appenderNameN.option1 = value1
  ...
log4j.appender.appenderNameN.optionN = valueN

        下面對(duì)其語(yǔ)法進(jìn)行一一的說(shuō)明:

        一、log4j.rootLogger = [level] ,appenderName1 ,appenderName2, ..., appenderNameN
        1、level:用于指定log日志的輸出級(jí)別,Log4j的日志輸出級(jí)別一共有五級(jí),從小到大分別是DEBUG、INFO、WARN、ERROR和FATAL。在配置文件中可以不指定log日志的輸出級(jí)別,但需要說(shuō)明的是這種情況下系統(tǒng)會(huì)將日志信息級(jí)別等于或高于DEBUG級(jí)別的信息輸出到指定的日志目的地——一句話,Log4j的默認(rèn)日志優(yōu)先級(jí)為DEBUG級(jí)別。
        注意:日志信息的日志級(jí)別只有等于或高于所配置的日志級(jí)別時(shí),該日志信息才會(huì)輸出到指定的日志輸出目的地,例如上述配置文件配置的日志級(jí)別為DEBUG,那么這時(shí)日志級(jí)別為DEBUG或INFO或WARN或ERROR或FATAL的日志信息都會(huì)輸出到指定的日志輸出目的地,但是如果將配置文件中的日志級(jí)別設(shè)置為INFO,那么這時(shí)日志級(jí)別為INFO或WARN或ERROR或FATAL的日志信息才能輸出到指定的日志輸出目的地,DEBUG級(jí)別的日志信息不會(huì)輸出到日志的目的地。

        2、appenderName:日志信息輸出目的地名。目的地的名稱可以任意起,但最好能見(jiàn)名知意;另外可以在等號(hào)右側(cè)同時(shí)指定多個(gè)目的地名,例如上面的例子指定了兩個(gè)log日志目的地——Console(將日志輸出到MyEclipse控制臺(tái))和DailyRollingFile(將日志輸出到操作系統(tǒng)D盤(pán)根目錄下的index.html文件)。

        二、log4j.appender.appenderName = appender類的完全限定名

        1、appenderName在上面已經(jīng)說(shuō)過(guò)了,這里說(shuō)一下“appender類的完全限定名”,該限定名其實(shí)就是log日志目的地的實(shí)現(xiàn)類,那么log4j的日志輸出目的地的實(shí)現(xiàn)類有哪些呢?

        a、org.apache.log4j.ConsoleAppender(將日志信息輸出到控制臺(tái)) 
        b、org.apache.log4j.FileAppender(將日志信息輸出到文件) 
        c、org.apache.log4j.DailyRollingFileAppender(將日志信息輸出到文件,該文件每天產(chǎn)生一個(gè)) 
        d、org.apache.log4j.RollingFileAppender(將日志信息輸出到文件,該文件在超過(guò)指定大小的時(shí)候會(huì)產(chǎn)生一個(gè)新的文件) 
        e、org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方) 
         f、org.apache.log4j.net.SMTPAppender(將日志信息以郵件的方式發(fā)送到指定的郵箱)

        三、log4j.appender.appenderName.option = value

        option:此處為配置某個(gè)日志輸出目的地的選項(xiàng),該選項(xiàng)依據(jù)指定的”appender類的完全限定名“的不同而不同,而每個(gè)option對(duì)應(yīng)的值依據(jù)option的不同而不同,下面分別介紹一下”appender類的完全限定名“及其對(duì)應(yīng)的option選項(xiàng):

        a、org.apache.log4j.ConsoleAppender:【0分下載示例代碼】
        b、org.apache.log4j.FileAppender:【0分下載示例代碼
        c、org.apache.log4j.DailyRollingFileAppender: 【0分下載示例代碼
        d、org.apache.log4j.RollingFileAppender:【0分下載示例代碼
        e、org.apache.log4j.WriterAppender:【0分下載示例代碼
         f、org.apache.log4j.jdbc.JDBCAppender:【0分下載示例代碼

上述就是小編為大家分享的如何理解Log4j配置文件中代碼的含義了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI