亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Java中l(wèi)og4j.properties配置與加載應(yīng)用

 更新時(shí)間:2018年02月11日 09:58:21   作者:Aidon博客  
這篇文章主要介紹了 log4j.properties配置與加載應(yīng)用的相關(guān)資料,需要的朋友可以參考下

 log4j.properties總結(jié):

一、介紹

Log4j是Apache的一個(gè)開放源代碼項(xiàng)目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件、甚至是套接口服務(wù) 器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過程。
Log4j由三個(gè)重要的組件構(gòu)成:日志信息的優(yōu)先級(jí),日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級(jí)從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺(tái)還是文件中;而輸出格式則控制了日志信息的顯示內(nèi)容。

二、配置文件

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

示例:

log4j.rootLogger=INFO, A1 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

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

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。通過在這里定義的級(jí)別,您可以控制到應(yīng)用程序中相應(yīng)級(jí)別的日志信息的開關(guān)。比如在這里定義了INFO級(jí)別,則應(yīng)用程序中所有DEBUG級(jí)別的日志信息將不被打印出來。

appenderName就是指定日志信息輸出到哪個(gè)地方。您可以同時(shí)指定多個(gè)輸出目的地。

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(控制臺(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ā)送到任意指定的地方) 

(1).ConsoleAppender選項(xiàng)

Threshold=WARN:指定日志消息的輸出最低層次。 
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。 
Target=System.err:默認(rèn)情況下是:System.out,指定輸出控制臺(tái) 

(2).FileAppender 選項(xiàng)

Threshold=WARN:指定日志消息的輸出最低層次。
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。
File=mylog.txt:指定消息輸出到mylog.txt文件。
Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容。

(3).DailyRollingFileAppender 選項(xiàng)

Threshold=WARN:指定日志消息的輸出最低層次。

ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。

File=mylog.txt:指定消息輸出到mylog.txt文件。

Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容。

DatePattern='.'yyyy-ww:每周滾動(dòng)一次文件,即每周產(chǎn)生一個(gè)新的文件。當(dāng)然也可以指定按月、周、天、時(shí)和分。即對(duì)應(yīng)的格式如下: 

1)'.'yyyy-MM: 每月  

2)'.'yyyy-ww: 每周 

3)'.'yyyy-MM-dd: 每天 

4)'.'yyyy-MM-dd-a: 每天兩次 

5)'.'yyyy-MM-dd-HH: 每小時(shí) 

6)'.'yyyy-MM-dd-HH-mm: 每分鐘

(4).RollingFileAppender 選項(xiàng)

Threshold=WARN:指定日志消息的輸出最低層次。

ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會(huì)被立即輸出。

File=mylog.txt:指定消息輸出到mylog.txt文件。

Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容。

MaxFileSize=100KB: 后綴可以是KB, MB 或者是 GB. 在日志文件到達(dá)該大小時(shí),將會(huì)自動(dòng)滾動(dòng),即將原來的內(nèi)容移到

mylog.log.1文件。

MaxBackupIndex=2:指定可以產(chǎn)生的滾動(dòng)文件的最大數(shù)。

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有以下幾種:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的級(jí)別和信息字符串),
org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

4、輸出格式設(shè)置

在配置文件中可以通過log4j.appender.A1.layout.ConversionPattern設(shè)置日志輸出格式。

參數(shù):

%p: 輸出日志信息優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL,
%d: 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
%r: 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
%c: 輸出日志信息所屬的類目,通常就是所在類的全名
%t: 輸出產(chǎn)生該日志事件的線程名
%l: 輸出日志事件的發(fā)生位置,相當(dāng)于%C.%M(%F:%L)的組合,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:Testlog4.main(TestLog4.Java:10)
%x: 輸出和當(dāng)前線程相關(guān)聯(lián)的NDC(嵌套診斷環(huán)境),尤其用到像Java servlets這樣的多客戶多線程的應(yīng)用中。
%%: 輸出一個(gè)”%”字符
%F: 輸出日志消息產(chǎn)生時(shí)所在的文件名稱
%L: 輸出代碼中的行號(hào)
%m: 輸出代碼中指定的消息,產(chǎn)生的日志具體信息
%n: 輸出一個(gè)回車換行符,Windows平臺(tái)為”\r\n”,Unix平臺(tái)為”\n”輸出日志信息換行

可以在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度、和文本的對(duì)齊方式。如:

1)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,默認(rèn)的情況下右對(duì)齊。
2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,”-”號(hào)指定左對(duì)齊。
3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大于30的話,就會(huì)將左邊多出的字符截掉,但小于30的話也不會(huì)有空格。
4)%20.30c:如果category的名稱小于20就補(bǔ)空格,并且右對(duì)齊,如果其名稱長(zhǎng)于30字符,就從左邊交遠(yuǎn)銷出的字符截掉。

三、加載log4j.properties文件

 1、spring方式加載,配置與web.xml中:

Spring加載log4j.properties,它提供了一個(gè)Log4jConfigListener,本身就能通過web.xml配置從指定位置加載log4j配置文件和log4j的輸出路徑,要注意的是

Log4jConfigListener必須要在Spring的Listener之前。

web.xml

<!-- 設(shè)置由Sprng載入的Log4j配置文件位置 -->
<context-param> 
  <param-name>log4jConfigLocation</param-name> 
  <param-value>WEB-INF/classes/log4j.properties</param-value> 
</context-param> 
 <!-- Spring刷新Log4j配置文件變動(dòng)的間隔,單位為毫秒 -->
<context-param> 
  <param-name>log4jRefreshInterval</param-name> 
  <param-value>10000</param-value> 
</context-param> 
<listener> 
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

2、可以通過資源類對(duì)資源文件進(jìn)行加載,與使用為一體

public  class TestLog4j  {
  public  static  void main(String[] args)  {
    PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
    Logger logger = Logger.getLogger(TestLog4j. class );
    logger.debug( " debug " );
    logger.error( " error " );
  } 
} 

四、在程序中的使用

在程序中使用Log4j之前,首先要將commons-logging.jar和logging-log4j-1.2.9.jar導(dǎo)入到classpath中,并將log4j.properties放于src根目錄中。接下來就可以使用了。

1.得到記錄器

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

public static Logger getLogger( String name),

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

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

注:推薦使用commons-logging結(jié)合log4j進(jìn)行日志記錄

private static Log logger = LogFactory.getLog(Yourclass.class);

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

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

Logger.debug ( Object message ) ; 
Logger.info ( Object message ) ; 
Logger.warn ( Object message ) ; 
Logger.error ( Object message ) ;

例如:

 import org.apache.log4j.*;
 public class LogTest ...{  
   static Logger logger = Logger.getLogger(LogTest.class.getName());
   public static void main(String[] args) ...{
 //通過PropertyConfigurator加載log4j.properties文件,如果不添加這句話,則有spring加載 
     PropertyConfigurator.configure ( “.\srclog4j.properties”);
     logger.debug("Debug ...");
     logger.info("Info ...");
     logger.warn("Warn ...");
     logger.error("Error ...");
   }
 }

總結(jié)

以上所述是小編給大家介紹的log4j.properties配置與加載應(yīng)用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JVM指令的使用深入詳解

    JVM指令的使用深入詳解

    這篇文章主要給大家介紹了關(guān)于JVM指令使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • java設(shè)計(jì)模式--建造者模式詳解

    java設(shè)計(jì)模式--建造者模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2021-07-07
  • Java利用MD5加鹽實(shí)現(xiàn)對(duì)密碼進(jìn)行加密處理

    Java利用MD5加鹽實(shí)現(xiàn)對(duì)密碼進(jìn)行加密處理

    在開發(fā)的時(shí)候,有一些敏感信息是不能直接通過明白直接保存到數(shù)據(jù)庫的。最經(jīng)典的就是密碼了。如果直接把密碼以明文的形式入庫,不僅會(huì)泄露用戶的隱私,對(duì)系統(tǒng)也是極其的不厲。本文就來和大家介紹一下如何對(duì)密碼進(jìn)行加密處理,感興趣的可以了解一下
    2023-02-02
  • java list中包含某個(gè)字符串的兩種方法實(shí)現(xiàn)

    java list中包含某個(gè)字符串的兩種方法實(shí)現(xiàn)

    在Java開發(fā)中,經(jīng)常需要判斷一個(gè)List中是否包含特定的字符串,包括使用contains()方法和循環(huán)遍歷判斷,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 在zuulFilter中注入bean失敗的解決方案

    在zuulFilter中注入bean失敗的解決方案

    這篇文章主要介紹了在zuulFilter中注入bean失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Netty分布式客戶端接入流程初始化源碼分析

    Netty分布式客戶端接入流程初始化源碼分析

    這篇文章主要介紹了Netty分布式客戶端接入流程初始化源碼分析,有關(guān)channelConfig有關(guān)的初始化過程剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • Java中Boolean引發(fā)缺陷的解決

    Java中Boolean引發(fā)缺陷的解決

    本文主要介紹了Java中Boolean引發(fā)缺陷的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解Spring Boot Oauth2緩存UserDetails到Ehcache

    詳解Spring Boot Oauth2緩存UserDetails到Ehcache

    這篇文章主要介紹了詳解Spring Boot Oauth2緩存UserDetails到Ehcache,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java Thread之Sleep()使用方法及總結(jié)

    Java Thread之Sleep()使用方法及總結(jié)

    這篇文章主要介紹了Java Thread之Sleep()使用方法及總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟

    SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟

    這篇文章主要介紹了SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論