log4j配置

日誌配置 apache

    

一、配置根Logger:
log4j.rootLogger = [ level ] , appenderName, appenderName2
level:日誌的級別,指定這條日誌信息的重要性。分爲ALL < DEBUG < INFO < WARN 通常經常使用的爲 

DEBUG , INFO ,WARN ,ERROR四種,分別對應Logger類的四種方法
debug(Object message ) ;
info(Object message ) ;
warn(Object message ) ;
error(Object message ) ;
若是設置級別爲INFO,則優先級大於等於INFO級別(如:INFO、WARN、ERROR)的日誌信息將能夠被輸出,

小於該級別的如:DEBUG將不會被輸出
appenderName :就是指定日誌信息輸出目的地,好比(打印到控制檯,輸出到文件等)。同一條日誌信息

能夠配置多個輸出目的地。

二、配置log輸出目的地:
org.apache.log4j.ConsoleAppender(控制檯)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(天天產生一個日誌文件)
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
三、log信息的格式:
org.apache.log4j.HTMLLayout(HTML表格形式)
org.apache.log4j.SimpleLayout(簡單格式的日誌,只包括日誌信息的級別和指定的信息字符串 ,如:DEBUG - Hello)
org.apache.log4j.TTCCLayout(日誌的格式包括日誌產生的時間、線程、類別等等信息)
org.apache.log4j.PatternLayout(靈活地自定義日誌格式)

當使用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 輸出日誌事件發生位置,包括類目名、發生線程,在代碼中的行數
%n 換行符
%m 輸出代碼指定信息,如info(「message」),輸出message
%p 輸出日誌的優先級,即 FATAL ,ERROR 等
%r 輸出從啓動到顯示該條日誌信息所耗費的時間(毫秒數)
%t 輸出產生該日誌事件的線程名

四、同時使用commons-logging和Log4j

1)首先在classpath下尋找本身的配置文件commons-logging.properties,若是找到,則使用其中定義的

Log實現類
2)若是找不到commons-logging.properties文件,則在查找是否已定義系統環境變量

org.apache.commons.logging.Log,找到則使用其定義的Log實現類
3)不然,查看classpath中是否有Log4j的包,若是發現,則自動使用Log4j做爲日誌實現類
4)不然,使用JDK自身的日誌實現類(JDK1.4之後纔有日誌實現類)
5)不然,使用commons-logging本身提供的一個簡單的日誌實現類SimpleLog

5.多個日誌文件(log4j.rootLogger=INFO, A1 ,A2)

#A2 輸出到文件 RollingFileAppender的擴展,能夠提供一種日誌的備份功能。 

log4j.appender.A2=org.apache.log4j.RollingFileAppender 
#日誌文件的名稱 log4j.appender.A2.File=log4j.log 
#日誌文件的大小 log4j.appender.A2.MaxFileSize=100KB 
#保存一個備份文件 log4j.appender.A2.MaxBackupIndex=1 

log4j.appender.A2.layout=org.apache.log4j.TTCCLayout 

#log4j.appender.A2.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%napp

#log4j.appender.A2.layout.ConversionPattern=%5p [%t] (%F:%L) - %d - %m%nspa


附例:(log4j.properties)
例1:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n

例2:
#指定根Logger,及日誌輸出級別,大於等於該級別的日誌將被輸出( DEBUG < INFO < WARN < ERROR < FATAL ) 設爲OFF能夠關閉日誌 
log4j.rootLogger=DEBUG, A1,A2 ,A3
#指定log輸出目的,這裏設爲輸出日誌到指定目錄的文件my.log中 
log4j.appender.A1=org.apache.log4j.FileAppender 
log4j.appender.A1.File=\\logs\\my.log #當前根目錄下 
#指定日誌信息的格式 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} %c %p -%m%n 

#把A2輸出到控制檯 
log4j.appender.A2=org.apache.log4j.ConsoleAppender 
log4j.appender.A2.layout=org.apache.log4j.SimpleLayout線程

 

#A3按天輸出日誌debug

log4j.appender.A3 =org.apache.log4j.DailyRollingFileAppender //按日輸出
log4j.appender.A3.File=logs/my.log //文件位置
log4j.appender.A3.DatePattern='.'yyyy-MM-dd //文件格式
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n 

#還能夠單獨指定輸出某個包的日誌級別 
#log4j.logger.com.study.HelloLog4j=INFO日誌

備註 之後會對該文章進行整理 完善orm

相關文章
相關標籤/搜索