1. 程式人生 > >java日誌操作

java日誌操作

一、Log4j的概念

Log4j中有三個主要的元件,它們分別是 Logger、Appender和Layout,Log4j 允許開發人員定義多個Logger,每個Logger擁有自己的名字,Logger之間通過名字來表明隸屬關係。有一個Logger稱為Root,它永遠存在,且不能通過名字檢索或引用,可以通過Logger.getRootLogger()方法獲得,其它Logger通過 Logger.getLogger(String name)方法。

 1) Appender則是用來指明將所有的log資訊存放到什麼地方,Log4j中支援多種appender,如 console、files、GUI components、NT Event Loggers等,一個Logger可以擁有多個Appender,也就是你既可以將Log資訊輸出到螢幕,同時儲存到一個檔案中。

輸出到控制檯:org.apache.log4j.ConsoleAppender

輸出到檔案:org.apache.log4j.FileAppender

2) Layout的作用是控制Log資訊的輸出方式,也就是格式化輸出的資訊。

3) Log4j中將要輸出的Log資訊定義了5種級別,從低到高依次為DEBUG、INFO、WARN、ERROR和FATAL,當輸出時,只有級別高過配置中規定的級別的資訊才能真正的輸出,這樣就很方便的來配置不同情況下要輸出的內容,而不需要更改程式碼,這點實在是方便啊。

二、log4j.properties

# level : 是日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先順序從高到低分別是ERROR、WARN、INFO、DEBUG。
log4j.rootLogger=DEBUG,CONSOLE,File
log4j.addivity.org.apache=true


# 應用於控制檯
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 本處設定為"INFO"以上級別在控制檯輸出(預設情況使用rootLogger中的設定)
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%t] %m%n


# 每天新建日誌
log4j.appender.File=org.apache.log4j.FileAppender
log4j.appender.File.File=./my.log
log4j.appender.File.Encoding=utf-8
log4j.appender.File.Threshold=DEBUG
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=[%-5p] [%t] %d{yyyy-MM-dd HH:mm:ss:SSS} - %c %l %x - %m%n


#郵件提醒Error
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#日誌的錯誤級別  
log4j.appender.MAIL.Threshold=ERROR 
#快取檔案大小,日誌達到2時傳送Email  
#log4j.appender.MAIL.BufferSize=2  
#傳送郵件的伺服器  
log4j.appender.MAIL.SMTPHost=smtp.126.com
#郵件主題  
log4j.appender.MAIL.Subject=ZhihuSpiderErrorMessage
#傳送郵件箱的使用者  
log4j.appender.MAIL.SMTPUsername=
#傳送郵件箱的密碼  
log4j.appender.MAIL.SMTPPassword=
#傳送郵件箱  
log4j.appender.MAIL.From=
#接受郵件箱  
log4j.appender.MAIL.To=
#傳送郵件的格式  
log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
三、載入配置

web.xml

<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
注意:如果是javaproject檔案,其實這個是不用寫的,log4j架包會自動找到這個檔案並載入的

四、使用

package com.lei.test;


import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;


public class Log4jTest {
static Logger logger = null;
static {
PropertyConfigurator.configure("log4j.properties");
logger = Logger.getLogger(Log4jTest.class);
}
public static void main(String[] args) {
logger.info("測試一下");
}
}

看一下放的位置: