欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:log4j詳解與實(shí)戰(zhàn)

柚子快報(bào)邀請(qǐng)碼778899分享:log4j詳解與實(shí)戰(zhàn)

http://yzkb.51969.com/

logger.info(“This?is?info?message.”); //?記錄error級(jí)別的信息 logger.error(“This?is?error?message.”); } }

配置文件log4j.properties:

Properties代碼 ?

#可以設(shè)置級(jí)別:debug>info>error #debug:顯示debug、info、error #info:顯示info、error #error:只error log4j.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender1 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #樣式為TTCCLayout log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

輸出結(jié)果:

Console代碼 ?

[main]?DEBUG?com.coderdream.log4j.HelloLog4j?-?This?is?debug?message. [main]?INFO?com.coderdream.log4j.HelloLog4j?-?This?is?info?message. [main]?ERROR?com.coderdream.log4j.HelloLog4j?-?This?is?error?message.

通過(guò)配置文件可知,我們需要配置3個(gè)方面的內(nèi)容:

1、根目錄(級(jí)別和目的地);

2、目的地(控制臺(tái)、文件等等);

3、輸出樣式。

**

下面我們來(lái)看看Log4J的類圖:**

**Logger - 日志寫(xiě)出器,供程序員輸出日志信息

Appender - 日志目的地,把格式化好的日志信息輸出到指定的地方去**

ConsoleAppender - 目的地為控制臺(tái)的Appender

FileAppender - 目的地為文件的Appender

RollingFileAppender - 目的地為大小受限的文件的Appender

Layout - 日志格式化器,用來(lái)把程序員的logging request格式化成字符串

PatternLayout - 用指定的pattern格式化logging request的Layout

**

Log4j基本使用方法**

Log4j由三個(gè)重要的組件構(gòu)成:日志信息的優(yōu)先級(jí),日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級(jí)從高到低有ERROR、WARN、INFO、DEBUG,分別用來(lái)指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺(tái)還是文件中;而輸出格式則控制了日志信息的顯示內(nèi)容。

一、定義配置文件

其實(shí)您也可以完全不使用配置文件,而是在代碼中配置Log4j環(huán)境。但是,使用配置文件將使您的應(yīng)用程序更加靈活。Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面我們介紹使用Java特性文件做為配置文件的方法:

1.配置根Logger,其語(yǔ)法為:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

其中,level是日志記錄的優(yōu)先級(jí),分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級(jí)別。Log4j建議只使用四個(gè)級(jí)別,優(yōu)先級(jí)從高到低分別是ERROR、WARN、INFO、DEBUG。通過(guò)在這里定義的級(jí)別,您可以控制到應(yīng)用程序中相應(yīng)級(jí)別的日志信息的開(kāi)關(guān)。比如在這里定義了INFO級(jí)別,則應(yīng)用程序中所有DEBUG級(jí)別的日志信息將不被打印出來(lái)。appenderName就是指B日志信息輸出到哪個(gè)地方。您可以同時(shí)指定多個(gè)輸出目的地。

2.配置日志信息輸出目的地Appender,其語(yǔ)法為:

log4j.appender.appenderName = fully.qualified.name.of.appender.class

log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

其中,Log4j提供的appender有以下幾種:

org.apache.log4j.ConsoleAppender(控制臺(tái)),

org.apache.log4j.FileAppender(文件),

org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個(gè)日志文件),

org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件),

org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)

3.配置日志信息的格式(布局),其語(yǔ)法為:

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN

其中,Log4j提供的layout有以e幾種:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),

org.apache.log4j.PatternLayout(可以靈活地指定布局模式),

org.apache.log4j.SimpleLayout(包含日志信息的級(jí)別和信息字符串),

org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

Log4J采用類似C語(yǔ)言中的printf函數(shù)的打印格式格式化日志信息,打印參數(shù)如下: %m 輸出代碼中指定的消息

%p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL

%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)

%c 輸出所屬的類目,通常就是所在類的全名

%t 輸出產(chǎn)生該日志事件的線程名

%n 輸出一個(gè)回車換行符,Windows平臺(tái)為“rn”,Unix平臺(tái)為“n”

%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921

%l 輸出日志事件的發(fā)生位置,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:Testlog4.main(TestLog4.java:10)

二、在代碼中使用Log4j

1.得到記錄器

使用Log4j,第一步就是獲取日志記錄器,這個(gè)記錄器將負(fù)責(zé)控制日志信息。其語(yǔ)法為:

public static Logger getLogger( String name)

通過(guò)指定的名字獲得記錄器,如果必要的話,則為這個(gè)名字創(chuàng)建一個(gè)新的記錄器。Name一般取本類的名字,比如:

static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

2.讀取配置文件

當(dāng)獲得了日志記錄器之后,第二步將配置Log4j環(huán)境,其語(yǔ)法為:

BasicConfigurator.configure (): 自動(dòng)快速地使用缺省Log4j環(huán)境。

PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫(xiě)的配置文件。

DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

3.插入記錄信息(格式化日志信息)

當(dāng)上兩個(gè)必要步驟執(zhí)行完畢,您就可以輕松地使用不同優(yōu)先級(jí)別的日志記錄語(yǔ)句插入到您想記錄日志的任何地方,其語(yǔ)法如下:

Logger.debug ( Object message ) ;

Logger.info ( Object message ) ;

Logger.warn ( Object message ) ;

Logger.error ( Object message ) ;

示例2~示例8

**【示例2】**輸出為文本文件或HTML文件

Porperties代碼 ?

#設(shè)置級(jí)別: log4j.rootLogger=debug,appender1 #輸出到文件(這里默認(rèn)為追加方式) log4j.appender.appender1=org.apache.log4j.FileAppender #設(shè)置文件輸出路徑 #【1】文本文件 #log4j.appender.appender1.File=c:/Log4JDemo02.log #【2】HTML文件 log4j.appender.appender1.File=c:/Log4JDemo02.html #設(shè)置文件輸出樣式 #log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

**【示例3】**輸出為文本文件或HTML文件

Properties代碼 ?

#設(shè)置級(jí)別和多個(gè)目的地 log4j.rootLogger=debug,appender1,appender2 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout #輸出到文件(這里默認(rèn)為追加方式) log4j.appender.appender2=org.apache.log4j.FileAppender #設(shè)置文件輸出路徑 #【1】文本文件 #log4j.appender.appender2.File=c:/Log4JDemo02.log #【2】HTML文件 log4j.appender.appender2.File=c:/Log4JDemo02.html #設(shè)置文件輸出樣式 #log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout

**【示例4】**SimpleLayout樣式

Properties代碼 ?

#設(shè)置級(jí)別和目的地 log4j.rootLogger=debug,appender1 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout

輸出結(jié)果:

控制臺(tái)代碼 ?

DEBUG?-?This?is?debug?message. INFO?-?This?is?info?message. ERROR?-?This?is?error?message.

**【示例5】**自定義樣式

Java代碼 ?

#設(shè)置級(jí)別和目的地 log4j.rootLogger=debug,appender1 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定義樣式 #?%r?時(shí)間?0 #?%t?方法名?main #?%p?優(yōu)先級(jí)?DEBUG/INFO/ERROR #?%c?所屬類的全名(包括包名) #?%l?發(fā)生的位置,在某個(gè)類的某行 #?%m?輸出代碼中指定的訊息,如log(message)中的message #?%n?輸出一個(gè)換行 log4j.appender.appender1.layout.ConversionPattern=%r?[%t]?[%p]?-?%c?-%l?-%m%n

輸出結(jié)果:

控制臺(tái)代碼 ?

0?[main]?[DEBUG]?-?com.coderdream.log4j.HelloLog4j -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16)?-This?is?debug?message. 31?[main]?[INFO]?-?com.coderdream.log4j.HelloLog4j -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18)?-This?is?info?message. 31?[main]?[ERROR]?-?com.coderdream.log4j.HelloLog4j -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20)?-This?is?error?message.

**【示例6】**多目的地、自定義樣式

Properties代碼 ?

#設(shè)置級(jí)別和目的地 log4j.rootLogger=debug,appender1,appender2 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定義樣式 #?%r?時(shí)間?0 #?%t?方法名?main #?%p?優(yōu)先級(jí)?DEBUG/INFO/ERROR #?%c?所屬類的全名(包括包名) #?%l?發(fā)生的位置,在某個(gè)類的某行 #?%m?輸出代碼中指定的訊息,如log(message)中的message #?%n?輸出一個(gè)換行符號(hào) log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd?HH:mm:ss:SSS}][%C-%M]?%m%n #輸出到文件(這里默認(rèn)為追加方式) log4j.appender.appender2=org.apache.log4j.FileAppender #設(shè)置文件輸出路徑 #【1】文本文件 log4j.appender.appender2.File=c:/Log4JDemo06.log #設(shè)置文件輸出樣式 log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M]?-%m%n

【示例7】****【企業(yè)應(yīng)用】設(shè)置特定包的級(jí)別和目的地

先增加一個(gè)包,新建一個(gè)類:

Java代碼 ?

package?com.coderdream.log4jDao; import?org.apache.log4j.Logger; public?class?HelloDao?{ private?static?Logger?logger?=?Logger.getLogger(HelloDao.class); /** *?@param?args */ public?static?void?main(String[]?args)?{ //?記錄debug級(jí)別的信息 logger.debug(“This?is?debug?message?from?Dao.”); //?記錄info級(jí)別的信息 logger.info(“This?is?info?message?from?Dao.”); //?記錄error級(jí)別的信息 logger.error(“This?is?error?message?from?Dao.”); } }

如果這個(gè)類作為基類,如J2EE中的BaseDao、BaseAction、BaseService等等,則我們可以將各層的日志信息分類輸出到各個(gè)文件。

Properties代碼 ?

#省略根,只設(shè)置特定包的級(jí)別和目的地 log4j.logger.com.coderdream.log4j=debug,appender1 log4j.logger.com.coderdream.log4jDao=info,appender1,appender2 #輸出到控制臺(tái) log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定義樣式 #?%r?時(shí)間?0 #?%t?方法名?main #?%p?優(yōu)先級(jí)?DEBUG/INFO/ERROR #?%c?所屬類的全名(包括包名) #?%l?發(fā)生的位置,在某個(gè)類的某行 #?%m?輸出代碼中指定的訊息,如log(message)中的message #?%n?輸出一個(gè)換行符號(hào) log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd?HH:mm:ss:SSS}][%C-%M]?%m%n #輸出到文件(這里默認(rèn)為追加方式) log4j.appender.appender2=org.apache.log4j.FileAppender #設(shè)置文件輸出路徑 #【1】文本文件 log4j.appender.appender2.File=c:/Log4JDemo07_Dao.log #設(shè)置文件輸出樣式 log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M]?-%m%n

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開(kāi)發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Java開(kāi)發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ava獲?。?/p>

最后總結(jié)

ActiveMQ+Kafka+RabbitMQ學(xué)習(xí)筆記PDF

RabbitMQ實(shí)戰(zhàn)指南

手寫(xiě)RocketMQ筆記

手寫(xiě)“Kafka筆記”

關(guān)于分布式,限流+緩存+緩存,這三大技術(shù)(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。這些相關(guān)的面試也好,還有手寫(xiě)以及學(xué)習(xí)的筆記PDF,都是啃透分布式技術(shù)必不可少的寶藏。以上的每一個(gè)專題每一個(gè)小分類都有相關(guān)的介紹,并且小編也已經(jīng)將其整理成PDF啦 《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開(kāi)發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲??! g-community.csdnimg.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后總結(jié)

ActiveMQ+Kafka+RabbitMQ學(xué)習(xí)筆記PDF

[外鏈圖片轉(zhuǎn)存中…(img-u0OyQqi3-1713222314730)]

RabbitMQ實(shí)戰(zhàn)指南

[外鏈圖片轉(zhuǎn)存中…(img-2gaUgStC-1713222314730)]

手寫(xiě)RocketMQ筆記

[外鏈圖片轉(zhuǎn)存中…(img-s4PstSnq-1713222314730)]

手寫(xiě)“Kafka筆記”

[外鏈圖片轉(zhuǎn)存中…(img-us14s0lv-1713222314730)]

關(guān)于分布式,限流+緩存+緩存,這三大技術(shù)(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。這些相關(guān)的面試也好,還有手寫(xiě)以及學(xué)習(xí)的筆記PDF,都是啃透分布式技術(shù)必不可少的寶藏。以上的每一個(gè)專題每一個(gè)小分類都有相關(guān)的介紹,并且小編也已經(jīng)將其整理成PDF啦 《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開(kāi)發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲??!

柚子快報(bào)邀請(qǐng)碼778899分享:log4j詳解與實(shí)戰(zhàn)

http://yzkb.51969.com/

好文鏈接

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19336703.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄