這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何理解Log4j配置文件中代碼的含義,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注于樂都網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供樂都營銷型網(wǎng)站建設(shè),樂都網(wǎng)站制作、樂都網(wǎng)頁設(shè)計(jì)、樂都網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造樂都網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樂都網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
通過Log4j可以方便的對項(xiàng)目中的日志進(jìn)行處理——控制日志信息輸出的目的地(控制臺(tái)、文件、GUI組件或NT事件記錄器)、控制每一條日志的輸出格式(HTMLLayout布局格式、PatternLayout布局格式、SimpleLayout布局格式或TTCCLayout)、控制所輸出日志信息的級別(DEBUG級別、INFO級別、WARN級別、ERROR級別或FATAL級別)等。下面從一個(gè)簡單的例子入手來詳細(xì)介紹Log4j的使用方法:
工程結(jié)構(gòu)如下圖:
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盤根目錄下的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分下載上面源碼工程】
通過上面的例子我們知道配置log4j的語法如下:
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
下面對其語法進(jìn)行一一的說明:
一、log4j.rootLogger = [level] ,appenderName1 ,appenderName2, ..., appenderNameN
1、level:用于指定log日志的輸出級別,Log4j的日志輸出級別一共有五級,從小到大分別是DEBUG、INFO、WARN、ERROR和FATAL。在配置文件中可以不指定log日志的輸出級別,但需要說明的是這種情況下系統(tǒng)會(huì)將日志信息級別等于或高于DEBUG級別的信息輸出到指定的日志目的地——一句話,Log4j的默認(rèn)日志優(yōu)先級為DEBUG級別。
注意:日志信息的日志級別只有等于或高于所配置的日志級別時(shí),該日志信息才會(huì)輸出到指定的日志輸出目的地,例如上述配置文件配置的日志級別為DEBUG,那么這時(shí)日志級別為DEBUG或INFO或WARN或ERROR或FATAL的日志信息都會(huì)輸出到指定的日志輸出目的地,但是如果將配置文件中的日志級別設(shè)置為INFO,那么這時(shí)日志級別為INFO或WARN或ERROR或FATAL的日志信息才能輸出到指定的日志輸出目的地,DEBUG級別的日志信息不會(huì)輸出到日志的目的地。
2、appenderName:日志信息輸出目的地名。目的地的名稱可以任意起,但最好能見名知意;另外可以在等號右側(cè)同時(shí)指定多個(gè)目的地名,例如上面的例子指定了兩個(gè)log日志目的地——Console(將日志輸出到MyEclipse控制臺(tái))和DailyRollingFile(將日志輸出到操作系統(tǒng)D盤根目錄下的index.html文件)。
二、log4j.appender.appenderName = appender類的完全限定名
1、appenderName在上面已經(jīng)說過了,這里說一下“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(將日志信息輸出到文件,該文件在超過指定大小的時(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對應(yīng)的值依據(jù)option的不同而不同,下面分別介紹一下”appender類的完全限定名“及其對應(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。