日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Log4j.properties配置文件详解

發(fā)布時間:2024/8/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Log4j.properties配置文件详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Log4J的配置文件(Configuration File)就是用來設(shè)置記錄器的級別、存放器和布局的,它可接key=value格式的設(shè)置或xml格式的設(shè)置信息。通過配置,可以創(chuàng)建出Log4J的運行環(huán)境。

1. 配置文件
Log4J配置文件的基本格式如下:

#配置根Logger log4j.rootLogger = [ level ] , appenderName , appenderName1 , …#配置日志信息輸出目的地Appender及Appender選項 log4j.appender.appenderName = fully.qualified.name.of.appender.class   log4j.appender.appenderName.option = value1…   log4j.appender.appenderName.optionN = valueN #配置日志信息的格式(布局)及格式布局選項 appender.appenderName.layout = fully.log4j.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1 = value1…   log4j.appender.appenderName.layout.optionN = valueN
  • 其中 [?level?] 是日志輸出級別:ERROR、WARN、INFO、DEBUG
    ERROR 為嚴(yán)重錯誤 主要是程序的錯誤
    WARN 為一般警告,比如session丟失
    INFO 為一般要顯示的信息,比如登錄登出
    DEBUG 為程序的調(diào)試信息
  • appenderName是日志輸出位置的配置的命名
  • log4j.appender.appenderName = fully.qualified.name.of.appender.class中fully.qualified.name.of.appender.class應(yīng)換上以下信息輸出的目的地:

  • 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ā)送到任意指定的地方)
    • appender.appenderName.layout = fully.log4j.qualified.name.of.layout.class中fully.qualified.name.of.layout.class格式布局應(yīng)換上以下信息:
  • org.apache.log4j.HTMLLayout(以HTML表格形式布局)
  • org.apache.log4j.PatternLayout(可以靈活地指定布局模式)
  • org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)
  • org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間、線程、類別等等信息)
    • log4j.appender.appenderName.option中option應(yīng)替換的屬性/選項

    ????????1.ConsoleAppender控制臺選項

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

      2.FileAppender 文件選項

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

      3.RollingFileAppender 每天生成一個文件選項

        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.rootLogger = debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE### 設(shè)置輸出sql的級別,其中l(wèi)ogger后面的內(nèi)容全部為jar包中所包含的包名 ### log4j.logger.org.apache=dubug log4j.logger.java.sql.Connection=dubug log4j.logger.java.sql.Statement=dubug log4j.logger.java.sql.PreparedStatement=dubug log4j.logger.java.sql.ResultSet=dubug### 配置輸出到控制臺 ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n### 配置輸出到文件 ### log4j.appender.fileAppender = org.apache.log4j.FileAppender log4j.appender.fileAppender.File = logs/log.log log4j.appender.fileAppender.Append = true log4j.appender.fileAppender.Threshold = DEBUG log4j.appender.fileAppender.layout = org.apache.log4j.PatternLayout log4j.appender.fileAppender.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 配置輸出到文件,并且每天都創(chuàng)建一個文件 ### log4j.appender.dailyRollingFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.dailyRollingFile.File = logs/log.log log4j.appender.dailyRollingFile.Append = true log4j.appender.dailyRollingFile.Threshold = DEBUG log4j.appender.dailyRollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.dailyRollingFile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 配置輸出到文件,且大小到達(dá)指定尺寸的時候產(chǎn)生一個新的文件 ### 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### 配置輸出到郵件 ### log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=FATAL log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=chenyl@yeqiangwei.com log4j.appender.MAIL.SMTPHost=mail.hollycrm.com log4j.appender.MAIL.Subject=Log4J Message log4j.appender.MAIL.To=chenyl@yeqiangwei.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 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 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=SampleMessages.log4j log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout

    ConversionPattern?日志信息,符號所代表的含義:

    ?-X號: X信息輸出時左對齊;
    ?%p: 輸出日志信息優(yōu)先級,即DEBUG,INFO,WARN,ERROR,FATAL,
    ?%d: 輸出日志時間點的日期或時間,默認(rèn)格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
    ?%r: 輸出自應(yīng)用啟動到輸出該log信息耗費的毫秒數(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)輸出的字符截掉。

    總結(jié)

    以上是生活随笔為你收集整理的Log4j.properties配置文件详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。