一、什么是log4j
Log4j 是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務(wù)器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應(yīng)用的代碼。

二、日志簡介
日志指在程序中插入語句以提供調(diào)試信息。使用日志能夠監(jiān)視程序的執(zhí)行。例如,用戶利用日志可以獲得關(guān)于應(yīng)用程序故障的完整信息。用戶可以將調(diào)試語句(如 System.out.println)插入到程序中以獲得詳細的調(diào)試信息。

三、項目中為什么要用log4j
大家在編程時經(jīng)常不可避免地要使用到一些日志操作,比如開發(fā)階段的調(diào)試信息、運行時的日志記錄及審計。調(diào)查顯示,日志代碼占代碼總量的4%。通常大家可以簡單地使用System.out.println()語句輸出日志信息,但是往往會有一些判斷,比如:
 
if (someCondition)
{
  System.out.println("some information.");
}

這些判斷造成正常的程序邏輯中混雜了大量的輸出語句。而在開發(fā)階段寫下的這些判斷僅為了調(diào)試的語句,在開發(fā)完成時需要查找并移除。部署運行后,尤其是在一些企業(yè)應(yīng)用系統(tǒng)中,還經(jīng)常需要進一步調(diào)試,這時就遇到了更大的麻煩。所以,我們需要一套完備的、靈活的、可配置的日志工具log4J就是優(yōu)秀的選擇。

四、log4j組件
Log4j 由 logger、appender 和 layout 三個組件組成。可以通過同名的 Java 類訪問 Log4j 的這三個組件。

Logger - 在執(zhí)行應(yīng)用程序時,接收日志語句生成的日志請求。它是一種重要的日志處理組件, 可以通過 log4j API 的 logger 類對其進行訪問。它的方法有:debug、info、warn、error、fatal 和 log。這些方法用于記錄消息。
Appender - 管理日志語句的輸出結(jié)果。執(zhí)行日志語句時,Logger 對象將接收來自日志語句的記錄請求。此請求是通過 logger 發(fā)送至 appender 的。然后,Appender 將輸出結(jié)果寫入到用戶選擇的目的地。對于不同的日志目的地,提供不同的 appender 類型。這些 appender 包括:用于文件的 file appender、用于數(shù)據(jù)庫的 JDBC appender 和用于 SMTP 服務(wù)器的 SMTP appender。
Layout - 用于指定 appender 將日志語句寫入日志目的地所采用的格式。appender 可以用來格式化輸出結(jié)果的各種布局包括:簡單布局、模式布局和 HTML 布局。