久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

log4j的配置

 Riley2222 2012-07-22

Log4j配置內(nèi)容
看一個簡單的java屬性配置文件log4j.properties: 

properties 代碼

 

  1. #指定根Logger,及日志輸出級別,,大于等于該級別的日志將被輸出( DEBUG < INFO < WARN < ERROR < FATAL ) 設(shè)為OFF可以關(guān)閉日志   
  2. log4j.rootLogger=DEBUG, A1,A2   
  3. #指定log輸出目的,這里設(shè)為輸出日志到指定目錄的文件my.log中   
  4. log4j.appender.A1=org.apache.log4j.FileAppender   
  5. log4j.appender.A1.File=\\logs\\my.log   #當(dāng)前根目錄下
  6. #指定日志信息的格式   
  7. log4j.appender.A1.layout=org.apache.log4j.PatternLayout    
  8. log4j.appender.A1.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} %c %p -%m%n   
  9.   
  10. #把A2輸出到控制臺   
  11. log4j.appender.A2=org.apache.log4j.ConsoleAppender   
  12. log4j.appender.A2.layout=org.apache.log4j.SimpleLayout    
  13.   
  14. #還可以單獨(dú)指定輸出某個包的日志級別   
  15. #log4j.logger.com.study.HelloLog4j=INFO  
  16.   

1,、配置根Logger,其語法為:
log4j.rootLogger = [ level ] , appenderName, appenderName2
level:日志的級別,,指定這條日志信息的重要性,。分為ALL < DEBUG < INFO < WARN <error fatal=""></error>一般常用的為 DEBUG , INFO ,,WARN ,,ERROR四種,分別對應(yīng)Logger類的四種方法
 debug(Object message ) ;
 info(Object message ) ;
 warn(Object message ) ;
 error(Object message ) ;
如果設(shè)置級別為INFO,,則優(yōu)先級大于等于INFO級別(如:INFO,、WARN、ERROR)的日志信息將可以被輸出,小于該級別的如:DEBUG將不會被輸出
appenderName :就是指定日志信息輸出目的地,,比如(打印到控制臺,,輸出到文件等)。同一條日志信息可以配置多個輸出目的地,。

2,、配置log輸出目的地
 Log4j提供以下幾種:
 org.apache.log4j.ConsoleAppender(控制臺)
 org.apache.log4j.FileAppender(文件)
 org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個日志文件)
 org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時候產(chǎn)生一個新的文件)
 org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)
3、log信息的格式
 org.apache.log4j.HTMLLayout(HTML表格形式)
 org.apache.log4j.SimpleLayout(簡單格式的日志,,只包括日志信息的級別和指定的信息字符串 ,,如:DEBUG - Hello)
 org.apache.log4j.TTCCLayout(日志的格式包括日志產(chǎn)生的時間、線程,、類別等等信息)
 org.apache.log4j.PatternLayout(靈活地自定義日志格式)

當(dāng)使用org.apache.log4j.PatternLayout來自定義信息格式時,,可以使用
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p -%m%n 來格式化信息
%c    輸出所屬類的全名,可寫為 %c{Num} ,Num類名輸出的范圍  如:"com.sun.aaa.classB", %C{2}將使日志輸出輸出范圍為:aaa.classB
%d    輸出日志時間其格式為 可指定格式 如 %d{HH:mm:ss}等
%l    輸出日志事件發(fā)生位置,,包括類目名,、發(fā)生線程,在代碼中的行數(shù)
%n    換行符
%m    輸出代碼指定信息,,如info(“message”),輸出message
%p    輸出日志的優(yōu)先級,,即 FATAL ,ERROR 等
%r    輸出從啟動到顯示該條日志信息所耗費(fèi)的時間(毫秒數(shù))
%t    輸出產(chǎn)生該日志事件的線程名

------------------------------------------------------------------



log4j主要由三大組件組成:
Logger :log4j的日志實(shí)例。
static Level DEBUG,INFO,WARN,ERROR,FATAL,ALL,OFF.
DEBUG Level指出細(xì)粒度信息事件對調(diào)試應(yīng)用程序是非常有幫助的,。
INFO level表明 消息在粗粒度級別上突出強(qiáng)調(diào)應(yīng)用程序的運(yùn)行過程,。
WARN level表明會出現(xiàn)潛在錯誤的情形,。
ERROR level指出雖然發(fā)生錯誤事件,但仍然不影響系統(tǒng)的繼續(xù)運(yùn)行,。
FATAL level指出每個嚴(yán)重的錯誤事件將會導(dǎo)致應(yīng)用程序的退出,。
另外,還有兩個可用的特別的日志記錄級別: 
ALL Level是最低等級的,,用于打開所有日志記錄,。 
OFF Level是最高等級的,用于關(guān)閉所有日志記錄,。

Appender :定義log4j輸出目的地,。
        org.apache.log4j.ConsoleAppender(控制臺), 
        org.apache.log4j.FileAppender(文件),, 
        org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個日志文件),, 
        org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時候產(chǎn)生一個新的文件), 
        org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方) 
ConsoleAppender選項(xiàng)
Threshold=DEBUG:指定日志消息的輸出最低層次,。
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會被立即輸出,。
Target=System.err:默認(rèn)情況下是:System.out,指定輸出控制臺
1.FileAppender 選項(xiàng)
Threshold=DEBUF:指定日志消息的輸出最低層次。
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會被立即輸出,。
File=mylog.txt:指定消息輸出到mylog.txt文件,。
Append=false:默認(rèn)值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內(nèi)容,。
2.RollingFileAppender 選項(xiàng)
Threshold=DEBUG:指定日志消息的輸出最低層次,。
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會被立即輸出。
File=mylog.txt:指定消息輸出到mylog.txt文件,。
Append=false:默認(rèn)值是true,即將消息增加到指定文件中,,false指將消息覆蓋指定的文件內(nèi)容。
MaxFileSize=100KB: 后綴可以是KB, MB 或者是 GB. 在日志文件到達(dá)該大小時,,將會自動滾動,,即將原來的內(nèi)容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以產(chǎn)生的滾動文件的最大數(shù),。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
3.DailyRollingFileAppender 選項(xiàng) 
Threshold=WARN:指定日志消息的輸出最低層次,。 
ImmediateFlush=true:默認(rèn)值是true,意謂著所有的消息都會被立即輸出。 
File=mylog.txt:指定消息輸出到mylog.txt文件,。 
Append=false:默認(rèn)值是true,即將消息增加到指定文件中,,false指將消息覆蓋指定的文件內(nèi)容。 
DatePattern='.'yyyy-ww:每周滾動一次文件,,即每周產(chǎn)生一個新的文件,。當(dāng)然也可以指定按月、周,、天,、時和分。即對應(yīng)的格式如下: 
1)'.'yyyy-MM: 每月 
2)'.'yyyy-ww: 每周 
3)'.'yyyy-MM-dd: 每天 
4)'.'yyyy-MM-dd-a: 每天兩次 
5)'.'yyyy-MM-dd-HH: 每小時 
6)'.'yyyy-MM-dd-HH-mm: 每分鐘 

Layout :定義log4j輸出的格式,。 
        org.apache.log4j.HTMLLayout(以HTML表格形式布局),, 
        org.apache.log4j.PatternLayout(可以靈活地指定布局模式), 
        org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),, 
        org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間,、線程、類別等等信息)
日志信息格式中幾個符號所代表的含義:
 -X號: X信息輸出時左對齊,;
 %p: 輸出日志信息優(yōu)先級,,即DEBUG,INFO,,WARN,,ERROR,F(xiàn)ATAL,
 %d: 輸出日志時間點(diǎn)的日期或時間,,默認(rèn)格式為ISO8601,,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},,輸出類似:2002年10月18日 22:10:28,,921
 %r: 輸出自應(yī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)用中,。
 %%: 輸出一個"%"字符
 %F: 輸出日志消息產(chǎn)生時所在的文件名稱
 %L: 輸出代碼中的行號
 %m: 輸出代碼中指定的消息,產(chǎn)生的日志具體信息
 %n: 輸出一個回車換行符,Windows平臺為"/r/n",,Unix平臺為"/n"輸出日志信息換行
 可以在%與模式字符之間加上修飾符來控制其最小寬度,、最大寬度、和文本的對齊方式,。如:
 1)%20c:指定輸出category的名稱,,最小的寬度是20,如果category的名稱小于20的話,,默認(rèn)的情況下右對齊,。
 2)%-20c:指定輸出category的名稱,最小的寬度是20,,如果category的名稱小于20的話,,"-"號指定左對齊。
 3)%.30c:指定輸出category的名稱,最大的寬度是30,,如果category的名稱大于30的話,,就會將左邊多出的字符截掉,但小于30的話也不會有空格,。
 4)%20.30c:如果category的名稱小于20就補(bǔ)空格,,并且右對齊,如果其名稱長于30字符,,就從左邊較遠(yuǎn)輸出的字符截掉,。


理論就理解這么多了,以后有機(jī)會用的時候再去說吧?,F(xiàn)在說多了怕錯的多了,。
下面來看看怎么使用:
首先導(dǎo)入log4j需要的包:我用的是 dom4j-1.6.1.jar。這個到Apache去下,。
然后添加配置文件:log4j.properties  or  log4j.xml(其實(shí)這兩個還是有點(diǎn)區(qū)別的,,首先系統(tǒng)會去找xml,找不到xml配置的時候才去讀properties文件,,有
                                    人說properties的方案以后會被淘汰掉,,這個我就不知道了,我唯一用過的還是properties,,不敢多說),,把我以前用log4j的時候
                                    使用的properties文件先貼下來:

其實(shí)log4j的記錄不僅僅是記錄到console,file,,還可以到mail,,jdbc。
根Logger的配置:設(shè)置輸出的優(yōu)先級,,log4j.rootLogger = [ level ] , appenderName, appenderName, …

### global config ###
# log level: DEBUG<INFO<WARN<ERROR<FATAL
log4j.rootLogger=DEBUG,console,file

### appender of console ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p  %5r %c] ->Thread:%t -file:%F -line:%L  -content:%m%n

### appender of file ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/exam.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p  %5r  %d{yyyy-MM-dd HH/:mm/:ss.SSS}  %c] -> -%F%L -%m%n

 


然后就可以使用了:

 package  com.yixun.wap;
 
import 
 org.apache.log4j.Logger;
 
public   class  TestLog4j  
{
     
 private   static  Logger logger  =  Logger.getLogger(TestLog4j. class 
); 
 
     
 public   static   void  main(String[] args)  
{
         logger.debug(
 " debug  " 
);   
         logger.info(
 " info " 
);   
         logger.warn(
 " warn " 
);
         logger.error(
 " error " 
); 
         logger.faltal(
 " faltal " 
);
     }
 

 }

不完全點(diǎn),,待續(xù)…… 

/**********************csdn上down的,沒用過,,貌似是比較全 **************************/

log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE
log4j.addivity.org.apache=true

# 應(yīng)用于控制臺
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 用于數(shù)據(jù)庫
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@90.0.12.20:1521:ORCL
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=Nation
log4j.appender.DATABASE.password=1
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
# INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
# 寫入數(shù)據(jù)庫中的表LOG4J的Message字段中,,內(nèi)容%d(日期)%c: 日志信息所在地(類名)%p: 日志信息級別%m: 產(chǎn)生的日志具體信息 %n: 輸出日志信息換行
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 每天新建日志
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C:/log4j/log
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n

#應(yīng)用于文件
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:/log4j/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 應(yīng)用于文件回滾
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.CONSOLE_FILE.Encoding=GBK
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#自定義Appender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = [email protected]
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#應(yīng)用于socket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

# 發(fā)送日志給郵件
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
[email protected]
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
[email protected]
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


注意事項(xiàng)——Ant編譯影響Log4j

      使用Ant編譯時,javac有個debug屬性,,需要特別注意,,debug屬性默認(rèn)為false,若debug屬性為false的話,,會影響log4j,,導(dǎo)致log4j不能顯示日志發(fā)生的行數(shù)(在日志發(fā)生的行數(shù)處顯示?),。

 如lo4j的配置為:

log4j.appender.dq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n

在javac的debug="false" 時編譯,,即

<javac srcdir="${src}" destdir="${class}" classpathref="classpath" />

日志輸出為:

2009-01-16 10:15:23 DEBUG ConnectPoint:? - [connect point]request incoming

在debug="true"時編譯,,即

<javac srcdir="${src}" destdir="${class}" classpathref="classpath" debug="true"/>

日志輸出為:

2009-01-16 10:16:32 DEBUG ConnectPoint:40 - [connect point]request incoming.

   即Ant編譯時javac的debug屬性會影響logj的%L。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多