<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 32,  comments - 149,  trackbacks - 0
    一、前言:
    ???? log4j (http://jakarta.apache.org/log4j/)是一個(gè)開放源碼項(xiàng)目,是廣泛使用的以Java編寫的日志記錄包。由于log4j出色的表現(xiàn),當(dāng)時(shí)在log4j完成時(shí),log4j開發(fā)組織曾建議sun在jdk1.4中用log4j取代jdk1.4 的日志工具類,但當(dāng)時(shí)jdk1.4已接近完成,所以sun拒絕使用log4j,當(dāng)在java開發(fā)中實(shí)際使用最多的還是log4j,人們遺忘了sun的日志工具類.。它的一個(gè)獨(dú)有特性包括在類別中繼承的概念。通過使用類別層次結(jié)構(gòu),這樣就減少了日志記錄輸出量,并將日志記錄的開銷降到最低。
    ??
    ???? 它允許開發(fā)者控制以任意間隔輸出哪些日志語句。通過使用外部配置文件,完全可以在運(yùn)行時(shí)進(jìn)行配置。幾乎每個(gè)大的應(yīng)用程序都包括其自己的日志記錄或跟蹤 API。經(jīng)驗(yàn)表明日志記錄是開發(fā)周期中的重要組成部分。同樣,日志記錄提供一些優(yōu)點(diǎn)。首先,它可以提供運(yùn)行應(yīng)用程序的確切 上下文。一旦插入到代碼中,生成日志記錄輸出就不需要人為干涉。其次,日志輸出可以保存到永久媒體中以便以后研究。最后,除了在開發(fā)階段中使用,十分豐富的日志記錄包還可以用作審計(jì)工具。

    ??? 依照該規(guī)則,在 1996 年初,EU SEMPER(歐洲安全電子市場)項(xiàng)目就決定編寫自己的跟蹤 API。 在無數(shù)次改進(jìn)、幾次具體化和許多工作之后,該 API 已經(jīng)演變成 log4j,一種流行的 Java 日志記錄包。? 這個(gè)包按 IBM 公共許可證分發(fā),由開放源碼權(quán)威機(jī)構(gòu)認(rèn)證。

    ??? 日志記錄有其自己的缺點(diǎn)。它會(huì)降低應(yīng)用程序的速度。如果太詳細(xì),它可能會(huì)使屏幕滾動(dòng)變得看不見。? 為了減低這些影響,log4j 被設(shè)計(jì)成快速且靈活的。由于應(yīng)用程序很少將日志記錄當(dāng)作是主要功能,? log4j API 力爭易于了解和使用。
    ???? log4j,它可以控制以任意間隔輸出哪些日志語句。

    二、主要組件

    1、根類別(在類別層次結(jié)構(gòu)的頂部,即全局性的日志級(jí)別)
    ?
    配置根Logger,其語法為:

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

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

    類別level 為 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定義的優(yōu)先級(jí)。
    og4j常用的優(yōu)先級(jí)FATAL>ERROR>WARN>INFO>DEBUG
    配置根Logger,其語法為:
    log4j.rootLogger = [ level ] , appenderName, appenderName, …
    如果為log4j.rootLogger=WARN,則意味著只有WARN,ERROR,FATAL被輸出,DEBUG,INFO將被屏蔽掉。

    舉例:log4j.rootCategory=INFO,stdout,Runlog,Errorlog
    根日志類別為INFO,DEBUG將被屏蔽,其他的將被輸出。 stdout,Runlog,Errorlog分別為3個(gè)輸出目的地。

    ?2、常用輸出格式

    ?-X號(hào):X信息輸出時(shí)左對(duì)齊;
    ?%p:日志信息級(jí)別
    ?%d{}:日志信息產(chǎn)生時(shí)間
    ?%c:日志信息所在地(類名)
    ?%m:產(chǎn)生的日志具體信息
    ?%n:輸出日志信息換行
    ?舉例:
    log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
    log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
    log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

    3、布局
    使用的輸出布局,其中l(wèi)og4j提供4種布局:
    org.apache.log4j.HTMLLayout(以HTML表格形式布局)
    org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
    org.apache.log4j.SimpleLayout(包含日志信息的級(jí)別和信息字符串),
    org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

    舉例:
    輸出格式為HTML表格
    log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout

    輸出格式為可以靈活地指定布局模式
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    輸出格式為包含日志信息的級(jí)別和信息字符串
    log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

    輸出格式為包含日志產(chǎn)生的時(shí)間、線程、類別等等信息
    log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout


    4、目的地

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


    log4j.appender.appenderName = fully.qualified.name.of.appender.class
    log4j.appender.appenderName.option1 = value1
    ...
    log4j.appender.appenderName.option = valueN
    appenderName就是指定日志信息輸出到哪個(gè)地方。您可以同時(shí)指定多個(gè)輸出目的地。

    log4j支持的輸出目的地:
    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ā)送到任意指定的地方)
    org.apache.log4j.net.SMTPAppender 郵件
    org.apache.log4j.jdbc.JDBCAppender 數(shù)據(jù)庫
    其他如:GUI組件、甚至是套接口服務(wù)器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等

    舉例:


    輸出到控制臺(tái)
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender(指定輸出到控制臺(tái))
    log4j.appender.Threshold=DEBUG(指定輸出類別)
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout(指定輸出布局)
    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(指定輸出格式)

    輸出到文件

    ?? log4j.appender.FILE=org.apache.log4j.FileAppender(指定輸出到文件)
    ?? log4j.appender.FILE.File=file.log(指定輸出的路徑及文件名)
    ?? log4j.appender.FILE.Append=false
    ?? log4j.appender.FILE.layout=org.apache.log4j.PatternLayout(指定輸出的布局)
    ?? log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(指定輸出的格式)

    輸出到文件(輪換"日志文件",當(dāng)日志文件達(dá)到指定大小時(shí),該文件就被關(guān)閉并備份,然后創(chuàng)建一個(gè)新的日志文件)

    ? 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.ROLLING_FILE.MaxFileSize=10KB(指定輸出到文件的大?。?br />? 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(指定采用輸出格式)

    輸出到Socket
    ?log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender(指定輸出到Socket)
    ?log4j.appender.SOCKET.RemoteHost=localhost(遠(yuǎn)程主機(jī))
    ?log4j.appender.SOCKET.Port=5001(遠(yuǎn)程主機(jī)端口)
    ?log4j.appender.SOCKET.LocationInfo=true
    ?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(輸出格式)

    輸出到郵件
    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender(指定輸出到郵件)
    ?log4j.appender.MAIL.Threshold=FATAL
    ?log4j.appender.MAIL.BufferSize=10
    ?log4j.appender.MAIL.From=chunkyo@163.com(發(fā)件人)
    ?log4j.appender.MAIL.SMTPHost=mail.hollycrm.com(SMTP服務(wù)器)
    ?log4j.appender.MAIL.Subject=Log4J Message
    ?log4j.appender.MAIL.To=chunkyo@163.com(收件人)
    ?log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout(布局)
    ?log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(格式)

    ?

    輸出到數(shù)據(jù)庫
    ?log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender(指定輸出到數(shù)據(jù)庫)
    ?log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test(指定數(shù)據(jù)庫URL)
    ?log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver(指定數(shù)據(jù)庫driver)
    ?log4j.appender.DATABASE.user=root(指定數(shù)據(jù)庫用戶)
    ?log4j.appender.DATABASE.password=root(指定數(shù)據(jù)庫用戶密碼)
    ?log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')(組織SQL語句)
    ?log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout(布局)
    ?log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n(格式)

    5、日志類別補(bǔ)充
    有時(shí)我們需要對(duì)某個(gè)特定的部分指定有別于根類別的日志類別,可以指定某個(gè)包的優(yōu)先級(jí)
    如:
    ? log4j.category.com.neusoft.mbip.dm.util=ERROR ,其中com.neusoft.mbip.dm.util為我們需要特別指定日志類別的部分。
    ?
    ? 或者可以指定輸出文件的優(yōu)先級(jí)
    ? log4j.appender.Errorlog.Threshold=ERROR
    ?
    三、 常用log4j配置?

    常用log4j配置,一般可以采用兩種方式,.properties和.xml,下面舉兩個(gè)簡單的例子:

    1、log4j.properties

    ### 設(shè)置org.zblog域?qū)?yīng)的級(jí)別INFO,DEBUG,WARN,ERROR和輸出地A1,A2 ##
    log4j.category.org.zblog=ERROR,A1
    log4j.category.org.zblog=INFO,A2

    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    ### 設(shè)置輸出地A1,為ConsoleAppender(控制臺(tái)) ##
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    ### 設(shè)置A1的輸出布局格式PatterLayout,(可以靈活地指定布局模式)##
    log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    ### 配置日志輸出的格式##

    log4j.appender.A2=org.apache.log4j.RollingFileAppender
    ### 設(shè)置輸出地A2到文件(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件)##
    log4j.appender.A2.File=E:/study/log4j/zhuwei.html
    ### 文件位置##
    log4j.appender.A2.MaxFileSize=500KB
    ### 文件大小##
    log4j.appender.A2.MaxBackupIndex=1
    log4j.appender.A2.layout=org.apache.log4j.HTMLLayout
    ##指定采用html方式輸出

    2、log4j.xml

    <?xml version="1.0" encoding="GB2312" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

    <log4j:configuration xmlns:log4j="

    <appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender">
    <!-- 設(shè)置通道ID:org.zblog.all和輸出方式:org.apache.log4j.RollingFileAppender -->
    ??? <param name="File" value="E:/study/log4j/all.output.log" /><!-- 設(shè)置File參數(shù):日志輸出文件名 -->
    ??? <param name="Append" value="false" /><!-- 設(shè)置是否在重新啟動(dòng)服務(wù)時(shí),在原有日志的基礎(chǔ)添加新日志 -->
    ??? <layout class="org.apache.log4j.PatternLayout">
    ??????? <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 設(shè)置輸出文件項(xiàng)目和格式 -->
    ??? </layout>
    </appender>

    <appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender">
    ??? <param name="File" value="E:/study/log4j/zhuwei.output.log" />
    ??? <param name="Append" value="true" />
    ??? <param name="MaxFileSize" value="10240" /> <!-- 設(shè)置文件大小 -->
    ??? <layout class="org.apache.log4j.PatternLayout">
    ??????? <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
    ??? </layout>
    </appender>

    <logger name="zcw.log"> <!-- 設(shè)置域名限制,即zcw.log域及以下的日志均輸出到下面對(duì)應(yīng)的通道中 -->
    ??? <level value="debug" /><!-- 設(shè)置級(jí)別 -->
    ??? <appender-ref ref="org.zblog.zcw" /><!-- 與前面的通道id相對(duì)應(yīng) -->
    </logger>

    <root> <!-- 設(shè)置接收所有輸出的通道 -->
    ??? <appender-ref ref="org.zblog.all" /><!-- 與前面的通道id相對(duì)應(yīng) -->
    </root>

    </log4j:configuration>


    3、配置文件加載方法:

    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    import org.apache.log4j.xml.DOMConfigurator;

    public class Log4jApp {
    ??? public static void main(String[] args) {
    ??????? DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加載.xml文件
    ??????? //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加載.properties文件

    ??????? Logger log=Logger.getLogger("org.zblog.test");
    ??????? log.info("測試");
    ??? }
    }

    4、項(xiàng)目使用log4j
    在web應(yīng)用中,可以將配置文件的加載放在一個(gè)單獨(dú)的servlet中,并在web.xml中配置該servlet在應(yīng)用啟動(dòng)時(shí)候加載。
    對(duì)于在多人項(xiàng)目中,可以給每一個(gè)人設(shè)置一個(gè)輸出通道,這樣在每個(gè)人在構(gòu)建Logger時(shí),用自己的域名稱,讓調(diào)試信
    息輸出到自己的log文件中。

    四、log4j配置舉例(properties)

    #log4j.rootLogger = [ level ] , appenderName, appenderName,
    #類別level 為 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定義的優(yōu)先級(jí)
    #Log4j常用的優(yōu)先級(jí)FATAL>ERROR>WARN>INFO>DEBUG

    #stdout為控制臺(tái) ,Errorlog為錯(cuò)誤記錄日志 ,
    log4j.rootCategory=INFO,stdout,Runlog,Errorlog


    #輸出的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ā)送到任意指定的地方)
    #org.apache.log4j.net.SMTPAppender 郵件
    #org.apache.log4j.jdbc.JDBCAppender 數(shù)據(jù)庫

    #定義輸出的形式
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.Runlog=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.Errorlog=org.apache.log4j.DailyRollingFileAppender


    #可以指定輸出文件的優(yōu)先級(jí)
    log4j.appender.Errorlog.Threshold=ERROR

    #指定輸出的文件
    log4j.appender.Runlog.File=D:\\UserInfoSyn\\WebRoot\\WEB-INF\\runlog\\runlog.log
    log4j.appender.Errorlog.File=D:\\UserInfoSyn\\WebRoot\\WEB-INF\\errorlog\\errorlog.log


    #Log4j的layout布局
    #org.apache.log4j.HTMLLayout 以HTML表格形式布局
    #org.apache.log4j.PatternLayout 可以靈活地指定布局模式
    #org.apache.log4j.SimpleLayout? 包含日志信息的級(jí)別和信息字符串
    #org.apache.log4j.TTCCLayout??? 包含日志產(chǎn)生的時(shí)間、線程、類別等等信息

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.Runlog.layout=org.apache.log4j.PatternLayout
    log4j.appender.Errorlog.layout=org.apache.log4j.PatternLayout

    #輸出格式,log4j javadoc org.apache.log4j.PatternLayout
    #-X號(hào):X信息輸出時(shí)左對(duì)齊;
    #%p:日志信息級(jí)別
    # %d{}:日志信息產(chǎn)生時(shí)間
    # %c:日志信息所在地(類名)
    # %m:產(chǎn)生的日志具體信息
    # %n:%n:輸出日志信息換行
    log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
    log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
    log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

    #指定某個(gè)包的優(yōu)先級(jí)
    log4j.category.com.neusoft.mbip.dm.util=ERROR


    #示例
    ###################
    # Console Appender
    ###################
    #log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    #log4j.appender.Threshold=DEBUG
    #log4j.appender.CONSOLE.Target=System.out
    #log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    #log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n


    #####################
    # File Appender
    #####################
    #log4j.appender.FILE=org.apache.log4j.FileAppender
    #log4j.appender.FILE.File=file.log
    #log4j.appender.FILE.Append=false
    #log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    #log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    # Use this layout for LogFactor 5 analysis

    ########################
    # Rolling File????? RollingFileAppender??????????????????
    ########################
    #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.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

    ####################
    # Socket Appender
    ####################
    #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

    ########################
    # SMTP Appender
    #######################
    #log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
    #log4j.appender.MAIL.Threshold=FATAL
    #log4j.appender.MAIL.BufferSize=10
    #log4j.appender.MAIL.From=chunkyo@163.com
    #log4j.appender.MAIL.SMTPHost=mail.hollycrm.com
    #log4j.appender.MAIL.Subject=Log4J Message
    #log4j.appender.MAIL.To=chunkyo@163.com
    #log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
    #log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

    ########################
    # JDBC Appender
    #######################
    #log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
    #log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
    #log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
    #log4j.appender.DATABASE.user=root
    #log4j.appender.DATABASE.password=
    #log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
    #log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
    #log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

    ########################
    # Log Factor 5 Appender
    ########################
    #log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
    #log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

    ###################
    #自定義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 = chunkyo@163.com
    #log4j.appender.im.layout=org.apache.log4j.PatternLayout
    #log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

    posted on 2007-02-05 12:24 chunkyo 閱讀(5246) 評(píng)論(2)  編輯  收藏 所屬分類: Java技術(shù)

    FeedBack:
    # re: Log4j的介紹
    2007-02-05 14:49 | BeanSoft
    log4j 過濾日志級(jí)別
    Please see detail for logconfig.xml. For filter only support xml.

    You can use as following appender:

    org.apache.log4j.ConsoleAppender ConsoleAppender
    org.apache.log4j.FileAppender FileAppender
    org.apache.log4j.jdbc.JDBCAppender JDBCAppender
    org.apache.log4j.AsyncAppender AsyncAppender
    org.apache.log4j.net.JMSAppender JMSAppender
    org.apache.log4j.lf5.LF5Appender LF5Appender
    org.apache.log4j.nt.NTEventLogAppender NTEventLogAppender
    org.apache.log4j.varia.NullAppender NullAppender
    org.apache.log4j.net.SMTPAppender SMTPAppender
    org.apache.log4j.net.SocketAppender SocketAppender
    org.apache.log4j.net.SocketHubAppender SocketHubAppender
    org.apache.log4j.net.SyslogAppender SyslogAppender
    org.apache.log4j.net.TelnetAppender TelnetAppender
    org.apache.log4j.WriterAppender WriterAppender
    For only one level deal:
    You must user LevelRangeFilter and set LevelMin and LevelMax to the same level,

    Note:The value must uppercase.


    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="ERROR" />
    <param name="LevelMax" value="ERROR" />
    </filter>
      回復(fù)  更多評(píng)論
      
    # re: Log4j的介紹[未登錄]
    2007-02-06 11:02 | limq
    不錯(cuò),收藏了  回復(fù)  更多評(píng)論
      
    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

    這個(gè)博客主要是關(guān)于java技術(shù)和開源技術(shù),大家一起來進(jìn)步了!

    常用鏈接

    留言簿(12)

    隨筆分類

    隨筆檔案

    文章分類

    收藏夾

    DotNet

    Java技術(shù)網(wǎng)站

    Linux VS Unix

    其他常去網(wǎng)站

    常光顧的BLOG

    文學(xué)類網(wǎng)站

    游戲類網(wǎng)站

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 196749
    • 排名 - 293

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 污网站免费在线观看| 成人毛片18女人毛片免费视频未 | 亚洲日本va在线视频观看| 国产成人精品免费午夜app| 国产精品免费久久久久影院| 亚洲国产精品一区二区三区在线观看 | 五月婷婷综合免费| 99re6在线视频精品免费| 一本天堂ⅴ无码亚洲道久久| 国产成人亚洲综合色影视| 免费A级毛片在线播放不收费| **aaaaa毛片免费| 久久美女网站免费| h视频免费高清在线观看| 日韩欧美亚洲中文乱码| 中文字幕亚洲男人的天堂网络 | 午夜免费国产体验区免费的| 亚洲精品456人成在线| 亚洲精品动漫在线| 国产精品国产亚洲精品看不卡| 亚洲国产成人久久综合碰| 小小影视日本动漫观看免费| 在线播放高清国语自产拍免费 | 久久亚洲精品中文字幕无码| 国产精品亚洲玖玖玖在线观看| 免费鲁丝片一级观看| 中文字幕影片免费在线观看| xxxxx免费视频| 91精品国产免费| 久久永久免费人妻精品下载| 久久久久久成人毛片免费看| a毛片视频免费观看影院| 中文在线免费不卡视频| 一本久久免费视频| 九九99热免费最新版| 亚洲免费无码在线| 抽搐一进一出gif免费视频| 国产特黄特色的大片观看免费视频| 一级做a爰片久久毛片免费陪 | 免费永久看黄在线观看app| 超pen个人视频国产免费观看|