一、編寫日志輸出環境配置文件
在開發過程中,最重要的就是在控制台查看程序輸出的日志信息,在這里我們選擇使用 log4j 工具來輸出:
- 准備工作:將【MyBatis】文件夾下【lib】中的 log4j 開頭的 jar 包都導入工程並添加依賴。 在【src】下新建一個文件 log4j.properties 資源:
# Global logging configuration
# 在開發環境下日志級別要設置成 DEBUG ,生產環境設為 INFO 或 ERROR
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.rootLogger=DEBUG, stdout
- 指的是日志輸出級別,一共有 7 個級別(OFF、 FATAL、 ERROR、 WARN、 INFO、 DEBUG、 ALL)
- 一般常用的日志輸出級別分別為 DEBUG、 INFO、 ERROR 以及 WARN,分別表示 “調試級別”、 “標准信息級別”、 “錯誤級別”、 “異常級別”。如果需要查看程序運行的詳細步驟信息,一般選擇 “DEBUG” 級別,因為該級別在程序運行期間,會在控制台才打印出底層的運行信息,以及在程序中使用 Log 對象打印出調試信息。
- 如果是日常的運行,選擇 “INFO” 級別,該級別會在控制台打印出程序運行的主要步驟信息。“ERROR” 和 “WARN” 級別分別代表 “不影響程序運行的錯誤事件” 和 “潛在的錯誤情形”。
- 文件中 “stdout” 這段配置的意思就是將 DEBUG 的日志信息輸出到 stdout 參數所指定的輸出載體中。
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
設置名為 stdout 的輸出端載體是哪種類型.目前輸出載體有
- ConsoleAppender(控制台)
- FileAppender(文件)
- DailyRollingFileAppender(每天產生一個日志文件)
- RollingFileAppender(文件大小到達指定大小時產生一個新的文件)
- WriterAppender(將日志信息以流格式發送到任意指定的地方)
這里要將日志打印到 IDEA 的控制台,所以選擇 ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
含義是,名為 stdout 的輸出載體的 layout(即界面布局)是哪種類型。目前輸出端的界面類型分為
- HTMLLayout(以 HTML 表格形式布局)
- PatternLayout(可以靈活地指定布局模式)
- SimpleLayout(包含日志信息的級別和信息字符串)
- TTCCLayout(包含日志產生的時間、線程、類別等信息)
這里選擇靈活指定其布局類型,即自己去配置布局。
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
含義是,如果 layout 界面布局選擇了 PatternLayout 靈活布局類型,要指定的打印信息的具體格式。格式信息配置元素大致如下:
- %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},輸出類似:2018 年 4 月18 日 10:32:00
- %l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數
本文借鑒:
- MyBatis【進階】(特此感謝!)