log4j简介及应用
一、介紹?
Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務 器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。?Log4j由三個重要的組件構成:日志信息的優先級,日志信息的輸出目的地,日志信息的輸出格式。日志信息的優先級從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺還是文件中;而輸出格式則控制了日志信息的顯示內容。
?
log4j的歷史
?
-
始于1996年初的E.U. SEMPER?(安全電子市場為歐洲)跟蹤API的項目。
-
不計其數的改進,在幾個大量的工作之后,API已經發展成為log4j,一個流行的日志記錄包為Java。
-
該軟件包是Apache軟件許可證,由開源認證是一個不折不扣的開源許可證下發布。
-
最新log4j的版本,包括完整的源代碼,類文件和文檔可以在這里找到?http://logging.apache.org/log4j/.
?
Log4j使用的幾個關鍵點?
根記錄器(Logger),輸出端(appenders)和布局(layouts)
a)定義根記錄器的格式為
log4j.rootLogger?=?[?level?],?appendName1,?appendName2,??appendNameN。同一個記錄器可
有多個輸出端。PS:level的級別(此級別可以自定義,系統默認提供了以下級別)?
◆debug//調試信息
◆info//一般信息
◆warn//警告信息
◆error//錯誤信息
◆fatal//致命錯誤信
b)定義一個appender的輸出目的地的格式為
log4j.appender.appenderName?=?fully.qualified.name.of.appender.class。log4j
提供了以下幾種常用的輸出目的地:
◆org.apache.log4j.ConsoleAppender,將日志信息輸出到控制臺
◆org.apache.log4j.FileAppender,將日志信息輸出到一個文件?
◆org.apache.log4j.DailyRollingFileAppender,將日志信息輸出到一個,并且每天輸出到一個新的日志文件
◆org.apache.log4j.RollingFileAppender,將日志信息輸出到一個文件,通過指定文件的的尺寸,當文件大小到達指定尺寸的時候會自動把文件改名,如為example.log的文件會改名為example.log.1,同時產生一個新的example.log文件。如果新的文件再次達到指定尺寸,又會自動把文件改名為example.log.2,同時產生example.log文件。依此類推,直到example.log.?MaxBackupIndex,MaxBackupIndex的值可在配置文件中定義。
◆org.apache.log4j.WriterAppender,將日志信息以流格式發送到任意指定的地方。
◆org.apache.log4j.jdbc.JDBCAppender,通過JDBC把日志信息輸出到數據庫中。
c)輸出格式(布局)layout?Log4j
提供了一下幾種布局:
◆org.apache.log4j.HTMLLayout,以HTML表格形式布局
◆org.apache.log4j.PatternLayout,可以靈活地指定布局模式
◆org.apache.log4j.SimpleLayout,包含日志信息的級別和信息字符串
PS:ConversionPattern參數的格式含義?
%c?輸出日志信息所屬的類的全名?
%d?輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd?HH:mm:ss?},輸出類似:2002-10-18-?22:10:28
%f?輸出日志信息所屬的類的類名
%l?輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行
%m?輸出代碼中指定的信息,如log(message)中的message?
%n?輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”
%p?輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推
%r?輸出自應用啟動到輸出該日志信息所耗費的毫秒數
%t?輸出產生該日志事件的線程名
?
log4j 特性:
-
log4j的是線程安全的
-
log4j是經過優化速度的
-
log4j是基于一個名為記錄器的層次結構
-
log4j的支持每個記錄器多輸出追加器(appender)
-
log4j支持國際化。
-
log4j并不限于一組預定義的設備
-
日志行為可以使用配置文件在運行時設置
-
log4j設計從一開始就是處理Java異常
-
log4j使用多個層次,即ALL,TRACE,DEBUG,INFO,WARN,ERROR和FATAL
-
日志輸出的格式可以通過擴展Layout類容易地改變
-
日志輸出的目標,以及在寫入策略可通過實現Appender程序接口改變
-
log4j 會故障停止。然而,盡管它肯定努力確保傳遞,log4j不保證每個日志語句將被傳遞到目的地。
?
?
?
轉載于:https://www.cnblogs.com/yhsj/p/4909989.html
總結
以上是生活随笔為你收集整理的log4j简介及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7z源码的编译与使用_markdown
- 下一篇: 字符串按照单词为单位逆序排列