MyBatis學習(三)日志輸出環境配置


一、編寫日志輸出環境配置文件

  在開發過程中,最重要的就是在控制台查看程序輸出的日志信息,在這里我們選擇使用 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 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數

 

本文借鑒:


免責聲明!

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



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