日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

背景

程序開發調試中,不可缺少的便是日志管理,常用的日志管理框架有如下幾種:

  • Log4j:Apache Log4j是一個基于JAVA的日志記錄工具。它是由Ceki Gülcü首創的,現在則是Apache軟件基金會的一個項目。 Log4j是幾種Java日志框架之一。
  • Log4j 2: Apache Log4j 2是Apache開發的一款Log4j的升級產品。
  • Commons Logging: Apache基金會所屬的項目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名為Commons Logging。
  • Slf4j: 類似于Commons Logging,是一套簡易Java日志門面,本身并無日志的實現。(Simple Logging Facade for Java,縮寫Slf4j)。
  • Logback: 一套日志組件的實現(Slf4j陣營)。
  • Jul (Java Util Logging),自Java1.4以來的官方日志實現。

因框架眾多,本章重點介紹Log4j使用方法,在文中若有誤解的地方煩請各位讀者提出,在這里小編先感謝百忙之中的您提出寶貴的意見。

Log4j入門介紹

日志排查之Log4j

 

  • Log4j是什么?

一個開源的、輕量級的、用于日志管理的框架。

  • Log4j用途?
  1. 日志監控打印,在項目運行期需要記錄用戶所有的操作;
  2. 程序調試期間,記錄運行的步驟和運行;
  3. 多個日志的輸出源,比如到數據庫、eclipse控制臺,或者日志文件到linux服務器下等。
  • Log4j常用配置文件有以下兩種方式:
  1. log4j.properties
  2. log4j.xml

Log4j日志級別

Log4j日志級別有以下幾種:

  1. OFF 最高等級,用于關閉所有日志記錄;
  2. FATAL 指出每個嚴重的錯誤事件將會導致應用程序的退出;
  3. ERROR 指出雖然發生錯誤事件,但仍然不影響系統的繼續運行;
  4. WARN 表明會出現潛在的錯誤情形;
  5. INFO 一般和在粗粒度級別上,強調應用程序的運行全程;
  6. DEBUG 一般用于細粒度級別上,對調試應用程序非常有幫助。
  7. ALL 最低等級,用于打開所有日志記錄。

常用日志級別:

  • 常用日志級別有:ERROR、WARN、INFO、DEBUG;
  • 排列順序(從高到低):DEBUG < INFO < WARN < ERROR;
  • 日志打印規則: 打印自身往后靠。

獲取方式

private static final Logger logger = Logger.getLogger(ClassName.class);

輸出源Appender、布局LayOut

  • 輸出源Appender
日志排查之Log4j

輸出源

  • 布局LayOut
日志排查之Log4j

布局

  • Appender、Layout、Logger三者之間的關系:
  1. 每個appender后面必然需要跟隨layout,指定自己的風格樣式 ;
  2. 每個Logger都可以指定一個級別,同時引用多個Appender;
  3. 每個Appender也同時可以被多個Logger引用。

配置文件設置

rootLogger(配置根logger)

rootLogger語法:

log4j.rootLogger = [ level], appenderName1, appenderName2, appenderNameN

說明:

1. level為日志記錄的優先級;

2. appenderName為日志的輸出地方;

例如:

log4j.appender.appenderName1 = org.apache.log4j.ConsoleAppender

appender(配置日志輸出目的地)

appender語法:

# 控制臺

log4j.appender.appenderName = org.apache.log4j.ConsoleAppender

# 文件

log4j.appender.appenderName = org.apache.log4j.FileAppender

# 每天產生一個日志文件

log4j.appender.appenderName = org.apache.log4j.DailyRollingFileAppender

# 文件大小到達指定尺寸的時候產生一個新的文件

log4j.appender.appenderName = org.apache.log4j.RollingFileAppender

# 將日志信息以流格式發送到任意指定的地方

log4j.appender.appenderName = org.apache.log4j.WriterAppender

# 把日志用JDBC記錄到數據庫中

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

layout(配置日志信息的格式/布局)

layout語法:

# 以html表格形式布局

log4j.appender.appenderName.layout = org.apache.log4j.HTMLLayout

# 可以靈活的指定布局模式(常用)

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

# 包含日志信息的級別和信息字符串

log4j.appender.appenderName.layout = org.apache.log4j.SimpleLayout

# 包含日志產生的時間、線程、類別等等信息

log4j.appender.appenderName.layout = org.apache.log4j.TTCCLayout

說明:

log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout 和

log4j.appender.FileLog.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}

都是成對出現的;

配置文件常用選項屬性

  • ConsoleAppender選項屬性

Threshold=DEBUG: 指定日志消息的輸出最低層次;

ImmediateFlush=true: 默認值是true,意謂著所有的消息都會被立即輸出;

Target=System.err:默認值System.out,輸出到控制臺(err為紅色,out為黑色)。

  • FileAppender選項屬性

Threshold=DEBUF:指定日志消息的輸出最低層次;

ImmediateFlush=true:默認值是true,意謂著所有的消息都會被立即輸出;

File=mylog.txt:指定消息輸出到mylog.txt文件;

Append=false:默認值是true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容;

Encoding = UTF-8:可以指定文件編碼格式。

  • DailyRollingFileAppender選項屬性

Threshold = WARN: 指定日志消息的輸出最低層次;

ImmediateFlush = TRUE: 默認值是true,所有的消息都會被立即輸出;

File = C:log4j.log:指定消息輸出到C:log4j.log文件;

Append = FALSE:默認值true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容;

Encoding = UTF-8:可以指定文件編碼格式;

DatePattern='.'yyyy-ww:每周滾動一次文件,即每周產生一個新的文件。

其中DatePattern還可以是以下參數文件:

'.'yyyy-MM:每月

'.'yyyy-ww:每周

'.'yyyy-MM-dd:每天

'.'yyyy-MM-dd-a:每天半天

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

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

  • RollingFileAppender選項屬性

Threshold = ERROR:指定日志消息的輸出最低層次;

ImmediateFlush = TRUE:默認值是true,所有的消息都會被立即輸出;

File = C:/log4j.log:指定消息輸出到C:/log4j.log文件;

Append = FALSE:默認值true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容;

MaxFileSize = 100KB:后綴可以是KB,MB,GB.在日志文件到達該大小時,將會自動滾動;例如:log4j.log.1

MaxBackupIndex = 2:指定可以產生的滾動文件的最大數;

Encoding = UTF-8:可以指定文件編碼格式。

  • HTMLLayout選項屬性

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

Title=Struts Log Message:默認值 Log4J Log Messages

  • PatternLayout選項屬性

ConversionPattern = %m%n:格式化指定的消息

  • XMLLayout選項屬性

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

配置文件Log4j.properties和Log4j.xml優先級

  • log4j.xml優先于log4j.properties;
  • log4j.xml的優勢:

1. filter精確匹配,避免往后靠的大于等于,可以OnlyOne過濾出我需要的;

2. additivity="false"精確匹配,停止傳播。

分享到:
標簽:日志 Log4j
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定