国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Log4j使用教程

2019-11-14 15:19:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

以前都是把所有日志都輸出到一個(gè)文件下面,今天有個(gè)同事問(wèn)想把某個(gè)包下的日志輸出到

指定的地方,于是就在網(wǎng)上查了一些資料,總結(jié)一下,以免以后用到。

 

 

一、log4j是什么? 

Log4j是一個(gè)開(kāi)源的日志記錄組件,其產(chǎn)品已經(jīng)相當(dāng)?shù)某墒欤沂褂梅浅5膹V泛。在工程中以易用,方便等代替了System.out 等打印語(yǔ)句。

Log4j的目標(biāo)是:它允許開(kāi)發(fā)人員以任意的精細(xì)程度控制哪些日志說(shuō)明被輸出。通過(guò)使用外部的配置文件,可以在運(yùn)行時(shí)配置它。

Log4j的具體在http://logging.apache.org/log4j/找到它(有使用的文檔說(shuō)明)。另外,log4j已經(jīng)被轉(zhuǎn)換成C, C++, C#, Perl, Python, Ruby, 和Eiffel 語(yǔ)言。

二、通常我們建立一個(gè)

log4j.PRoperties文件放在src下,編譯之后就生成在../web-inf/class/

當(dāng)然也可以放到其它任何目錄,只要該目錄被包含到類路徑中即可,中定位這個(gè)文件,并讀入這個(gè)文件完成的配置。這個(gè)配置文件告訴Log4J以什么樣的格式、把什么樣的信息、輸出到什么地方。

Log4j有三個(gè)主要的組件:Loggers(記錄器),Appenders(輸出源)和Layouts(布局),這里可簡(jiǎn)單理解為日志類別,日志要輸出的地方和日志以何種形式輸出。

綜合使用這三個(gè)組件可以輕松的記錄信息的類型和級(jí)別,并可以在運(yùn)行時(shí)控制日志輸出的樣式和位置。

下面對(duì)三個(gè)組件分別進(jìn)行說(shuō)明:

1、Loggers 

 Loggers組件在此系統(tǒng)中被分為五個(gè)級(jí)別:DEBUG、INFO、WARN、ERROR和FATAL。這五個(gè)級(jí)別是有順序的,DEBUG Log4j有一個(gè)規(guī)則:

假設(shè)Loggers級(jí)別為P,如果在Loggers中發(fā)生了一個(gè)級(jí)別Q比P高,則可以啟動(dòng),否則屏蔽掉。 

假設(shè)你定義的級(jí)別是info,那么error和warn的日志可以顯示而比他低的debug信息就不顯示了。

其語(yǔ)法表示為: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ā)送到任意指定的地方)

配置時(shí)使用方式為:

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

log4j.appender.appenderName.option1 = value1 

…

log4j.appender.appenderName.option = valueN 

這樣就為日志的輸出提供了相當(dāng)大的便利。

3、Layouts 

有時(shí)用戶希望根據(jù)自己的喜好格式化自己的日志輸出。

Log4j可以在Appenders的后面附加Layouts來(lái)完成這個(gè)功能。

Layouts提供了四種日志輸出樣式,如根據(jù)HTML樣式、自由指定樣式、包含日志級(jí)別與信息的樣式和包含日志時(shí)間、線程、類別等信息的樣式等等。 

其語(yǔ)法表示為:

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

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

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

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

配置時(shí)使用方式為:

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

log4j.appender.appenderName.layout.option1 = value1 

log4j.appender.appenderName.layout.option = valueN 

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)為“/r/n”,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)

 

4 . Log4j的配置

 以上是從原理方面說(shuō)明Log4j的使用方法,在具體Java編程使用Log4j可以參照以下示例:

1、建立Logger實(shí)例:

語(yǔ)法表示:public static Logger getLogger( String name) 

實(shí)際使用:static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ())  

2、讀取配置文件:

獲得了Logger的實(shí)例之后,接下來(lái)將配置Log4j使用環(huán)境,語(yǔ)法表示:

或者直接放在src下把log4j.properties文件BasicConfigurator.configure():自動(dòng)快速地使用缺省Log4j環(huán)境。

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

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

實(shí)際使用:PropertyConfigurator.configure("ServerWithLog4j.properties"); 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 正蓝旗| 盐亭县| 兴仁县| 南充市| 加查县| 北辰区| 定日县| 大化| 永寿县| 民丰县| 天长市| 老河口市| 赞皇县| 赤峰市| 岳普湖县| 科尔| 安国市| 榆林市| 河西区| 富源县| 石城县| 凤翔县| 杭锦旗| 将乐县| 蓬安县| 西畴县| 屏山县| 晴隆县| 云龙县| 屯昌县| 陆良县| 临湘市| 临颍县| 玉山县| 甘肃省| 曲沃县| 舟山市| 绥宁县| 巴东县| 龙陵县| 姚安县|