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


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

日志信息的優先級

日志信息的輸出目的地

日志信息的輸出格式

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

日志信息的輸出目的地指定了日志將打印到控制台還是文件中;

而輸出格式則控制了日志信息的顯 示內容。

Log4j支持兩種配置文件格式

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

下面我們介紹使用Java特性文件做為配置文件的方法:

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整合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM