Java web中使用Log4j記錄日誌資訊__html5

來源:互聯網
上載者:User
最近想記錄一下Log4j的使用,抽了點時間通過收集網上的資料整理了這份部落格,希望給需要用Log4j記錄日誌的朋友一點協助,若有不對的地方,望指正。Log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日誌資訊輸送的目的地是控制台、檔案GUI組建,甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌的資訊層級,我們能夠更加細緻地控制日誌的產生過程。(摘自百度百科)Apache的Log4j主要包括三個部分。在應用中要使用Log4j來記錄日誌,首先要知道這三個部分的作用,才知道如何去配置Log4j來記錄日誌。這三部分分別是:日誌資訊的優先順序、日誌資訊的輸入目的地和日誌資訊的輸出格式。下面就這三部分進行一個介紹,然後在最後給出一些例子講解如何配置Log4j。一、記錄層級記錄層級,是告訴Log4j什麼樣層級的日誌資訊才被記錄,主要包括以下幾個層級(層級依次由低到高):ALL:各層級包括自訂的層級;DEBUG:一般用在細粒度上,對調試應用程式非常有協助;INFO:一般用在細粒度上,強調應用程式的運行全程;WARN:指定具有潛在危害的情況;ERROR:指定雖然發生錯誤事件,但任然不影響系統運行;FATAL:指定非常嚴重的錯誤事件,可能會導致應用程式終止;OFF:最高的層級,指定關閉日誌記錄所有功能。二、日誌資訊輸出目的地日誌資訊輸出目的地,指定Log4j記錄的日誌資訊輸出到哪裡。在日常的開發中,比較常用的有以下幾種:1、org.apache.log4j.ConsoleAppender(控制台):可配置屬性:Threshold:指定日誌訊息輸出的最低層級InnediateFlush:日誌訊息是否立即輸出,預設為trueTarget:指定由誰輸出,預設是System.out2、org.apache.log4j.FileAppender(檔案):可配置屬性:Threshold:指定日誌訊息輸出的最低層級encoding:可以指定任何字元編碼,預設是特定平台的編碼方案InnediateFlush:日誌訊息是否立即輸出,預設為trueFile:指定日誌輸出到那個檔案Append:指定日誌資訊是否是追加方式輸出到檔案中,預設為true3、org.apache.log4j.RollingFileAppender(指定記錄檔到達一定的大小之後產生一個新檔案):該設定繼承與FileAppender,除了包括FileAppender可配置屬性外,還包括以下屬性:MaxFileSize:指定記錄檔到達一定的大小後,新產生一個檔案,可以指定單位有KB/MB/GBMaxBackupIndex:指定可以新產生多少個檔案4、org.appche.log4j.DailyRollingFileAppender(每天產生一個記錄檔):該設定繼承與FileAppender,除了包括FileAppender可配置屬性外,還包括以下屬性:DatePattern:指定在什麼時候產生一個新的記錄檔,預設是0點,可指定的格式:'.'yyyy-MM:每個月的結束和下個月初'.'yyyy-MM-dd:預設值,每天0點'.'yyyy-MM-dd-a:每天0點和12點'.'yyyy-MM-dd-HH:每小時'.'yyyy-MM-dd-HH-mm:每分鐘'.'yyyy-ww:每個星期的第一天5、org.apache.log4j.jdbc.JDBCAppender(記錄日誌資訊到資料庫):可配置屬性:bufferSize:設定緩衝區的大小,預設為1driver:設定資料庫驅動layout:設定日誌使用的布局,預設是org.apache.log4j.PatternLayoutsql:指定語句在每次記錄事件發生的時間執行,可以是insert/update/deleteurl:設定jdbc urluser:設定資料庫使用者名稱password:資料庫密碼  三、日誌資訊輸出格式可配置的輸出格式有以下幾種:1、org.apache.log4j.HTMLLayout(以HTML表格形式布局)2、org.apache.log4j.PatternLayout(可以靈活指定布局格式)3、org.apache.log4j.SimpleLayout(包含日誌的層級和資訊字串)4、org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等資訊)通過以上的可配置布局,還需要指定org.appender.appendName.layout.ConversionPattern屬性的具體格式,這裡以一個例子說明:log4j.appender.R.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss} %c %m%n具體配置項如下說明:-X:日誌資訊輸入靠左對齊%p:輸出日誌的層級%d:指定日期的輸出格式%r:輸出自應用啟動到輸出該log資訊耗費的毫秒數%c:輸出日誌資訊所屬的類目,通常就是類全名%t:輸出產生該日誌時間的線程名%l:輸出日誌事件的發生位置,包括類名、發生的線程以及在代碼中的行數%x:輸出和當前線程相關聯的嵌套診斷環境%%:輸出一個“%”%F:輸出日誌訊息產生是所在的檔案名稱%L:輸出代碼中的行號%m:輸出代碼中指定的日誌資訊%n:輸出一個斷行符號分行符號介紹完Log4j的三個部分的常用配置,下面結合例子來展示一下真實環境中的配置例子:1、下載Log4j,下載完後把jar包拷到lib目錄下下載地址:http://logging.apache.org/log4j/1.2/download.html2、編寫設定檔,並把檔案加入到classpath中:


3、在web.xml中配置啟動伺服器時啟動Log4j

4、在代碼中載入Log4j配置資訊:

通過以上4個步驟,那麼Log4j的環境就算搭建完成了。由於是基於java web搭建的Log4j,所以需要啟動伺服器來進行測試。這裡我以執行一個sql為例子,下圖是在某一段代碼中使用了Log4j記錄日誌:

控制台輸入日誌:

記錄檔輸出:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.