springmvc 項目完整示例06 日誌–log4j 參數詳細解析 log4j如何配置

Log4j由三個重要的組件構成:html

日誌信息的優先級java

日誌信息的輸出目的地mysql

日誌信息的輸出格式web

日誌信息的優先級從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日誌信息的重要程度;spring

日誌信息的輸出目的地指定了日誌將打印到控制檯仍是文件中;sql

而輸出格式則控制了日誌信息的顯 示內容。數據庫

Log4j支持兩種配置文件格式apache

一種是XML格式的文件,一種是Java特性文件(鍵=值)。mybatis

下面咱們介紹使用Java特性文件作爲配置文件的方法:mvc

1.配置根Logger,其語法爲:

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

好比咱們的就是

log4j.rootLogger = DEBUG,stdout,D

appenderName就是一個名字哈,你能夠定義你本身的,不是說就要這樣子的,不過要跟下面使用的時候對應上就行了

其中,level 是日誌記錄的優先級,分爲OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。

Log4j建議只使用四個級別,優 先級從高到低分別是ERROR、WARN、INFO、DEBUG。

經過在這裏定義的級別,您能夠控制到應用程序中相應級別的日誌信息的開關。

好比在這裏定 義了INFO級別,則應用程序中全部DEBUG級別的日誌信息將不被打印出來。 

appenderName就是指日誌信息輸出到哪一個地方。您能夠同時指定多個輸出目的地。

2.配置日誌信息輸出目的地Appender,其語法爲:

log4j.appender.appenderName = fully.qualified.name.of.appender.class  
log4j.appender.appenderName.option1 = value1  
…  
log4j.appender.appenderName.option = valueN

其中,Log4j提供的appender有如下幾種:

org.apache.log4j.ConsoleAppender(控制檯),  
org.apache.log4j.FileAppender(文件),  
org.apache.log4j.DailyRollingFileAppender(天天產生一個日誌文件),  
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),  
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

(1)ConsoleAppender選項:

Threshold=WARN:指定日誌信息的最低輸出級別,默認爲DEBUG。

ImmediateFlush=true:表示全部消息都會被當即輸出,設爲false則不輸出,默認值是true。

Target=System.err:默認值是System.out。

(2)FileAppender選項:

Threshold=WARN:指定日誌信息的最低輸出級別,默認爲DEBUG。

ImmediateFlush=true:表示全部消息都會被當即輸出,設爲false則不輸出,默認值是true。

Append=false:true表示消息增長到指定文件中,false則將消息覆蓋指定的文件內容,默認值是true。

File=D:/logs/logging.log4j:指定消息輸出到logging.log4j文件中。

(3)DailyRollingFileAppender選項:

Threshold=WARN:指定日誌信息的最低輸出級別,默認爲DEBUG。

ImmediateFlush=true:表示全部消息都會被當即輸出,設爲false則不輸出,默認值是true。

Append=false:true表示消息增長到指定文件中,false則將消息覆蓋指定的文件內容,默認值是true。

File=D:/logs/logging.log4j:指定當前消息輸出到logging.log4j文件中。

DatePattern='.'yyyy-MM:每個月滾動一第二天志文件,即每個月產生一個新的日誌文件。當前月的日誌文件名爲logging.log4j,前一個月的日誌文件名爲logging.log4j.yyyy-MM。

另外,也能夠指定按周、天、時、分等來滾動日誌文件,對應的格式以下:

1)'.'yyyy-MM:每個月

2)'.'yyyy-ww:每週

3)'.'yyyy-MM-dd:天天

4)'.'yyyy-MM-dd-a:天天兩次

5)'.'yyyy-MM-dd-HH:每小時

6)'.'yyyy-MM-dd-HH-mm:每分鐘

(4)RollingFileAppender選項:

Threshold=WARN:指定日誌信息的最低輸出級別,默認爲DEBUG。

ImmediateFlush=true:表示全部消息都會被當即輸出,設爲false則不輸出,默認值是true。

Append=false:true表示消息增長到指定文件中,false則將消息覆蓋指定的文件內容,默認值是true。

File=D:/logs/logging.log4j:指定消息輸出到logging.log4j文件中。

MaxFileSize=100KB:後綴能夠是KB, MB 或者GB。在日誌文件到達該大小時,將會自動滾動,即將原來的內容移到logging.log4j.1文件中。

MaxBackupIndex=2:指定能夠產生的滾動文件的最大數,例如,設爲2則能夠產生logging.log4j.1,logging.log4j.2兩個滾動文件和一個logging.log4j文件。

咱們的

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

就是指定到控制檯的 =左邊的stdout就是咱們定義的名字,後面就是類型嘛

說白了就是

log4j.appender.appenderName=appender的類型

這樣子就指定了輸入的目的地了

3.配置日誌信息的格式(佈局),其語法爲:

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class  
log4j.appender.appenderName.layout.option1 = value1  
…  
log4j.appender.appenderName.layout.option = valueN

其中,Log4j提供的layout有以e幾種:

org.apache.log4j.HTMLLayout(以HTML表格形式佈局),  
org.apache.log4j.PatternLayout(能夠靈活地指定佈局模式),  
org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串),  
org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

(1)HTMLLayout選項:

LocationInfo=true:輸出java文件名稱和行號,默認值是false。

Title=My Logging: 默認值是Log4J Log Messages。

(2)PatternLayout選項:

ConversionPattern=%m%n:設定以怎樣的格式顯示消息。

Log4J採用相似C語言中的printf函數的打印格式格式化日誌信息,打印參數以下: %m 輸出代碼中指定的消息

%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL  
%r 輸出自應用啓動到輸出該log信息耗費的毫秒數  
%c 輸出所屬的類目,一般就是所在類的全名  
%t 輸出產生該日誌事件的線程名  
%n 輸出一個回車換行符,Windows平臺爲「rn」,Unix平臺爲「n」  
%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也能夠在其後指定格式,好比:%d{yyy MMM dd HH:mm:ss,SSS},輸出相似:2002年10月18日 22:10:28,921  
%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10)

 

 

說到這個地方,來點總結性的

咱們以咱們的例子說

### 輸出到控制檯 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

其實就至關於你定義了一個方式,這個方式你本身要有一個名字

他就是最開始

log4j.rootLogger = DEBUG,stdout,D 這個地方的   ,  第一個逗號後面的這些個名字,他就是appenderName

你須要,指定他的輸出目的

也便是

log4j.appender.stdout = 目的地

而後是剩下的一些參數,配置一下

就這樣子而已

具體的參數,以及參數的值,查查文檔,百度一下就出來了

再囉嗦一點幾個參數

好比說你想某種方式只是輸出某種級別,好比說你想只是把error輸出到文件

那麼你能夠指定

log4j.appender.D.Threshold = ERROR ## 只輸出ERROR級別以上的日誌!!!

這個Threshold  就控制了這個

#附:Log4j比較全面的配置

 

#Log4j配置文件實現了輸出到控制檯、文件、回滾文件、發送日誌郵件、輸出到數據庫日誌表、自定義標籤等全套功能。

log4j.rootLogger=DEBUG,console,dailyFile,im

log4j.additivity.org.apache=true

# 控制檯(console)

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.Threshold=DEBUG

log4j.appender.console.ImmediateFlush=true

log4j.appender.console.Target=System.err

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

# 日誌文件(logFile)

log4j.appender.logFile=org.apache.log4j.FileAppender

log4j.appender.logFile.Threshold=DEBUG

log4j.appender.logFile.ImmediateFlush=true

log4j.appender.logFile.Append=true

log4j.appender.logFile.File=D:/logs/log.log4j

log4j.appender.logFile.layout=org.apache.log4j.PatternLayout

log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# 回滾文件(rollingFile)

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender

log4j.appender.rollingFile.Threshold=DEBUG

log4j.appender.rollingFile.ImmediateFlush=true

log4j.appender.rollingFile.Append=true

log4j.appender.rollingFile.File=D:/logs/log.log4j

log4j.appender.rollingFile.MaxFileSize=200KB

log4j.appender.rollingFile.MaxBackupIndex=50

log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout

log4j.appender.rollingFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# 按期回滾日誌文件(dailyFile)

log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.dailyFile.Threshold=DEBUG

log4j.appender.dailyFile.ImmediateFlush=true

log4j.appender.dailyFile.Append=true

log4j.appender.dailyFile.File=D:/logs/log.log4j

log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd

log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout

log4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# 應用於socket

log4j.appender.socket=org.apache.log4j.RollingFileAppender

log4j.appender.socket.RemoteHost=localhost

log4j.appender.socket.Port=5001

log4j.appender.socket.LocationInfo=true

# Set up for Log Factor 5

log4j.appender.socket.layout=org.apache.log4j.PatternLayout

log4j.appender.socket.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# Log Factor 5 Appender

log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender

log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

# 發送日誌到指定郵件

log4j.appender.mail=org.apache.log4j.net.SMTPAppender

log4j.appender.mail.Threshold=FATAL

log4j.appender.mail.BufferSize=10

log4j.appender.mail.From = xxx@mail.com

log4j.appender.mail.SMTPHost=mail.com

log4j.appender.mail.Subject=Log4J Message

log4j.appender.mail.To= xxx@mail.com

log4j.appender.mail.layout=org.apache.log4j.PatternLayout

log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# 應用於數據庫

log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.database.URL=jdbc:mysql://localhost:3306/test

log4j.appender.database.driver=com.mysql.jdbc.Driver

log4j.appender.database.user=root

log4j.appender.database.password=

log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) --> [%t] %l: %m %x %n')

log4j.appender.database.layout=org.apache.log4j.PatternLayout

log4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

# 自定義Appender

log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

log4j.appender.im.host = mail.cybercorlin.net

log4j.appender.im.username = username

log4j.appender.im.password = password

log4j.appender.im.recipient = corlin@cybercorlin.net

log4j.appender.im.layout=org.apache.log4j.PatternLayout

log4j.appender.im.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

 

 

spring原理 實踐解析-簡單的helloworld

spring原理案例-基本項目搭建 01 spring framework 下載 官網下載spring jar包

spring原理案例-基本項目搭建 02 spring jar包詳解 spring jar包的用途

spring原理案例-基本項目搭建 03 建立工程運行測試 spring ioc原理實例示例

springmvc整合mybatis完整項目示例

springmvc 項目完整示例01 需求與數據庫表設計 簡單的springmvc應用實例 web項目

springmvc 項目完整示例02 項目建立-eclipse建立動態web項目 配置文件 junit單元測試

springmvc 項目完整示例03 小結

springmvc 項目完整示例04 整合mybatis mybatis所須要的jar包 mybatis配置文件 sql語句 mybatis應用

springmvc 項目完整示例05  日誌 --log4j整合 配置 log4j屬性設置 log4j 配置文件 log4j應用

springmvc 項目完整示例06 日誌–log4j 參數詳細解析 log4j如何配置

springmvc 項目完整示例07 設置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

springmvc 項目完整示例08 前臺頁面以及知識點總結

maven項目整合springmvc整合mybatis

eclipse 建立maven 項目 動態web工程完整示例

eclipse 建立maven 項目 動態web工程完整示例 maven 整合springmvc整合

相關文章
相關標籤/搜索