log4j1.2xjava
1.全名: logging tools for(four) java
apache
2.日誌顯示方式
app
a. 打印到控制檯 (比較便捷,適合程序開發調試階段,但持久化能力不足)socket
b. 保存到文件工具
c. 保存成每日郵件spa
d. 保存成網頁debug
e. 保存到某個socket位置
3.日誌級別:調試
1. DEBUG (the least serious) 操做的細節 日誌
2. INFO 處於哪一個階段,正在作什麼,作完以後結果如何繼承
3. WARN 警告,表示可能出現錯誤
4. ERROR 出現了錯誤,但系統能應付,須要立刻尋求糾正
5. FATAL (the most serious) 出現了致命錯誤,系統沒法繼續運行,須要中止工做,等待修復
4.核心:
日誌器 logger
追加器 appender
風格化工具 layout
5.構成:
log4j-1.2.14.jar
log4j.properties
content:
###################################################################
#
# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging)
#
# The five logging levels used by Log are (in order):
#
# 1. DEBUG (the least serious)
# 2. INFO
# 3. WARN
# 4. ERROR
# 5. FATAL (the most serious)
# Set root logger level to WARN and append to stdout
# 根日誌器,其它日誌器若是沒有特殊指明其日誌遊戲規則,那麼將默認繼承根日誌器的規則。
# rootLogger是在系統中,全部Log4j日誌器的父類,相似於日誌器的Object.
# log4j.rootLogger=warn,appender1,appender2,....appenderN.. (第一個參數爲日誌級別,後面的是追加器)
log4j.rootLogger=Error, stdout
#某個包下面的全部類以及子包類統一設置日誌操做規則
log4j.logger.edu.fjnu=info
#定製本身的日誌說明,下例表示edu.fjnu下面包的日誌輸出信息是debug級別
# 爲某個類的日誌器定義個性化設置 log4j.logger.edu.fjnu.Log4jTest=info,appender1,appender2...
log4j.logger.edu.fjnu.Log4jTest=debug, stdout
# stdout : standard out 標準輸出(追加器名稱) org.apache.log4j.ConsoleAppender 這是控制檯追加器
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
# %d:爲時間(date) %5p:%5表明最長寬度是5 ( %-5p 表示右對齊 ) p爲日誌級別 %c 爲類名(class) %m 爲消息本體(message) %n 爲換行
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n
# Print only messages of level ERROR or above in the package noModule.
log4j.logger.noModule=FATAL
#log4j.logger.com.opensymphony.xwork2=DEBUG
#log4j.logger.org.apache.struts2=DEBUG
############################################################################
6. log4j日誌器的建立
1)一個類僅僅擁有一個日誌器
private static final Logger logger = Logger.getLogger(Test.class);
7. appender的設置
//制定控制檯追加器,名爲stdou
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{yyyyMMdd HH:mm:ss,SSS} %5p [%c] %m%n
//制定 每日滾動文件追加器名爲file,可按時間建立日誌文件即會天天一文件的歸檔
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=d:\a.log //日誌文件保存的路徑
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} [%C:%M] - %m%n
8.example:
package edu.fjnu.test;
import org.apache.log4j.Logger;
public class Log4jTest {
private static final Logger logger = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
// 查看當前日誌級別是否爲info 級別,若是是就打印
if (logger.isInfoEnabled())
logger.info("開始工做了.....");
System.out.println("忙了一天了,真累");
if (logger.isInfoEnabled())
logger.info("下班了....");
}
}