?Log4j 框架是用 Java 語言編寫的標準日志記錄框架。作為 Jakarta 項目的一部分, 以速度和靈活性為中心概念:

??????? Log4j 由三個重要的部件構成:記錄器( Loggers )、輸出源( Appenders )和布局( Layouts )。

????記錄器按照布局中指定的格式把日志信息寫入一個或多個輸出源。輸出源可以是控制臺、文本文件、 XML 文件或 Socket ,甚至還可以把信息寫入到 Windows 事件日志或通過電子郵件發送。我們可以通過配置文件來部署這些組件。

?? ?Log4j提供兩種配置方法: 代碼配置和文件配置

??? Log4j 允許程序員定義多個記錄器,每個記錄器有自己的名字。但有一個記錄器叫根記錄器,它永遠存在,且不能通過名字檢索或引用,在配置文件中,可以如下定義根記錄器

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

???????????? Level 是記錄器的級別,它是日志記錄的優先級,分為 OFF FATAL ERROR WARN INFO DEBUG ALL 或者您定義的級別。 Log4j 建議只使用四個級別: ERROR WARN INFO DEBUG :???
右邊的級別比左邊的高。如果一條log信息的級別,大于等于記錄器的級別值,那么記錄器就會記錄它。例如level被設置為INFO級別,那么應用程序中所有的DEBUG的日志信息將不被打印出來。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。




?????日志信息輸出源 Appender
?????????? log4j
還允許日志記錄請求打印到多個輸出目的地,按 log4j 的叫法是輸出源。一個記錄器可以有多個輸出源。一條 log 信息如果可被這個記錄器處理,則該記錄器會把這條信息送往每個它所擁有的輸出源,以及層次結構中更高級的輸出源。例如,根記錄器以控制臺作為輸出源,則所有可被紀錄的日志都將至少打印到控制臺。


#?For?JBoss:?Avoid?to?setup?Log4J?outside?$JBOSS_HOME / server / default / deploy / log4j.xml !
#?For?all?other?servers:?Comment?out?the?Log4J?listener?in?web.xml?to?activate?Log4J.
#?log4j.rootLogger
= INFO,?stdout,?logfile?????????
log4j.rootLogger
= INFO,?stdout???????????????? //配置根記錄器

配置日志信息輸出源,其語法為:


log4j.appender.stdout
= org.apache.log4j.ConsoleAppender???????????????????????//控制臺
log4j.appender.stdout.layout
= org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=% d? % p?[ % c]? - ? % m % n

log4j.appender.logfile
= org.apache.log4j.RollingFileAppender??????????????? //文件大小到一定就會產生一個新的文件?
log4j.appender.logfile.File
= $ {espc.root} / WEB - INF / espc.log?????????????? //指定記錄文件的位置??
log4j.appender.logfile.MaxFileSize
= 512KB?????????????????????????????????? //文件最大限制
#?Keep?three?backup?files.
log4j.appender.logfile.MaxBackupIndex
= 3
#?Pattern?to?output:?date?priority?[category]?
- ?message
log4j.appender.logfile.layout
= org.apache.log4j.PatternLayout???????????????? //文件的布局
log4j.appender.logfile.layout.ConversionPattern
=% d? % p?[ % c]? - ? % m % n??????????# %d{}:日志信息產生時間????? # %p:日志信息級別 # %c:日志信息所在地(類名)
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? # %m:產生的日志具體信息# %n:輸出日志信息換?行??????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?