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

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:log4j詳解與實戰(zhàn)

柚子快報邀請碼778899分享:log4j詳解與實戰(zhàn)

http://yzkb.51969.com/

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

配置文件log4j.properties:

Properties代碼 ?

#可以設(shè)置級別:debug>info>error #debug:顯示debug、info、error #info:顯示info、error #error:只error log4j.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender1 #輸出到控制臺 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.

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

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

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

3、輸出樣式。

**

下面我們來看看Log4J的類圖:**

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

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

ConsoleAppender - 目的地為控制臺的Appender

FileAppender - 目的地為文件的Appender

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

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

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

**

Log4j基本使用方法**

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

一、定義配置文件

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

1.配置根Logger,其語法為:

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

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

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

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(控制臺),

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

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

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

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

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

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(包含日志信息的級別和信息字符串),

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

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

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

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

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

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

%n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”

%d 輸出日志時間點的日期或時間,默認格式為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,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:

public static Logger getLogger( String name)

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

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

2.讀取配置文件

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

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

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

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

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

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

Logger.debug ( Object message ) ;

Logger.info ( Object message ) ;

Logger.warn ( Object message ) ;

Logger.error ( Object message ) ;

示例2~示例8

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

Porperties代碼 ?

#設(shè)置級別: log4j.rootLogger=debug,appender1 #輸出到文件(這里默認為追加方式) 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è)置級別和多個目的地 log4j.rootLogger=debug,appender1,appender2 #輸出到控制臺 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout #輸出到文件(這里默認為追加方式) 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è)置級別和目的地 log4j.rootLogger=debug,appender1 #輸出到控制臺 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout

輸出結(jié)果:

控制臺代碼 ?

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

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

Java代碼 ?

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

輸出結(jié)果:

控制臺代碼 ?

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è)置級別和目的地 log4j.rootLogger=debug,appender1,appender2 #輸出到控制臺 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定義樣式 #?%r?時間?0 #?%t?方法名?main #?%p?優(yōu)先級?DEBUG/INFO/ERROR #?%c?所屬類的全名(包括包名) #?%l?發(fā)生的位置,在某個類的某行 #?%m?輸出代碼中指定的訊息,如log(message)中的message #?%n?輸出一個換行符號 log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd?HH:mm:ss:SSS}][%C-%M]?%m%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è)置特定包的級別和目的地

先增加一個包,新建一個類:

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級別的信息 logger.debug(“This?is?debug?message?from?Dao.”); //?記錄info級別的信息 logger.info(“This?is?info?message?from?Dao.”); //?記錄error級別的信息 logger.error(“This?is?error?message?from?Dao.”); } }

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

Properties代碼 ?

#省略根,只設(shè)置特定包的級別和目的地 log4j.logger.com.coderdream.log4j=debug,appender1 log4j.logger.com.coderdream.log4jDao=info,appender1,appender2 #輸出到控制臺 log4j.appender.appender1=org.apache.log4j.ConsoleAppender #設(shè)置輸出樣式 log4j.appender.appender1.layout=org.apache.log4j.PatternLayout #自定義樣式 #?%r?時間?0 #?%t?方法名?main #?%p?優(yōu)先級?DEBUG/INFO/ERROR #?%c?所屬類的全名(包括包名) #?%l?發(fā)生的位置,在某個類的某行 #?%m?輸出代碼中指定的訊息,如log(message)中的message #?%n?輸出一個換行符號 log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd?HH:mm:ss:SSS}][%C-%M]?%m%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)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

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

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

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

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

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

最后總結(jié)

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

RabbitMQ實戰(zhàn)指南

手寫RocketMQ筆記

手寫“Kafka筆記”

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

最后總結(jié)

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

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

RabbitMQ實戰(zhàn)指南

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

手寫RocketMQ筆記

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

手寫“Kafka筆記”

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

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

柚子快報邀請碼778899分享:log4j詳解與實戰(zhàn)

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容

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

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

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

發(fā)布評論

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

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄