requirednew基于xml配置日志不回滚_Mybatis 系列 4:引入日志框架
為什么要用日志?
我們以前要看一個信息,一般使用的是 System.out.println 來打印的,額,這種方式比較 low,需要在代碼里各種寫 System.out.println,是會受到鄙視的。。。
使用日志框架的好處:
0、比起 System.out.println,日志框架可以把日志的輸出和代碼分離;
1、日志框架可以方便的定義日志的輸出環境,控制臺,文件,數據庫,相比System.out.println 只能輸出到控制臺要好很多;
2、日志框架可以方便的定義日志的輸出格式和輸出級別,也就是說我們想看哪個級別的日志就開啟哪個級別的日志;
常見的日志框架:
0、JDK logging:JDK 1.4 版本以后開始提供的一個自帶的日志庫實現,比較弱,功能簡單,不支持占位符顯示,拓展性差,一般不用;
1、Apache 的 Commons Logging:嚴格上說,Commons Logging 是日志的一種規范,一種接口,被 Apache 給定義了,日志的規范本身不提供實現,可以通過動態查找的機制去找出真正的日志框架實現庫;
2、Log4j:Apache 下功能強大的日志庫實現,可以把日志輸出到文件,控制臺,還可以允許自定義日志格式和日志等級,幫助開發者全方位的掌控日志信息;
3、Log4j 2:是 Log4j 的升級,但是二者之間沒有本質關系,基本上把 Log4j 版本的核心全部重構,而且基于 Log4j 做了很多的優化和升級。
4、SLF4J:本質也是日志的規范,出現的比較晚,很多之前的日志技術就沒有來遵循它,所有得自己提供其他日志技術框架的橋梁,也就是說使用時得拷貝整合包(比如使用 Log4j 的時候,要遵循 SLF4j 的規范,就需要如圖中的 Slf4j-log4j12-xx.jar 包)。
這里有個小故事:
當年 Apache 說服 Log4j 以及其他的日志框架按照 Commons-Logging 的標準來編寫,但是由于 Commons-Logging 的加載有點問題,實現起來不友好。因此 Log4j 的作者就創作了 SLF4j,也因此與 Commons-Logging 二分天下。
5、Logback:由 Log4j 創始人設計的另一個開源日志組件,也是作為 Log4j 的替代者出現的,速度比 Log4j 高,而且官方是建議和 SLF4j 一起使用。
Logback、SLF4j、Log4j 都是出自同一個人,所有默認對 SLF4j 無縫整合。
日志級別:
從高到底分別是:
ERROR > WARN > INFO > DEBUG > TRACE
如果設置級別為 INFO,則優先級高于等于 INFO 級別(如:INFO、WARN、ERROR)的日志信息將可以被輸出,小于該級別的如 DEBUG 和 TRACE 將不被輸出。
總結:日志級別越低,輸出的日志越詳細。
下面,我們參照 Mybatis 官方文檔,進行日志框架(Log4j)配置:
0、在 resources 根目錄下創建 log4j.properties 文件:
可以看到日志文件的組成有 3 部分:
分別是 root、logger、appender。
root:設置默認的日志輸出級別和風格。
logger:設置自定義日志級別和風格。
appender:可以把日志輸出到控制臺或文件中去。
語法說明:
root 根配置(全局配置)語法:log4j.rootLogger=[level], appenderName, appenderName, …
把指定級別以上的日志信息輸出到指定的一個或者多個位置,level:ERROR > WARN > INFO > DEBUG > TRACE
logger 自定義配置,針對不同包、類、方法的日志個性化配置語法: log4j.logger.+包、類、方法名=[level]
appender 日志輸出目的地及格式配置語法:log4j.appender.+
1、通過 mybatis-config.xml 全局配置文件進行日志框架配置:
通過查詢 Mybatis 官方文檔的 XML 配置 -> settings(設置)知道:
設置名為 logImpl,描述為:指定 MyBatis 所用日志的具體實現,未指定時將自動查找,有效值為:SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING。則可配置日志框架。
2、拷貝相應 jar 包,或引入依賴:
配置好后,運行系列上一篇文章中寫好的測試用例,可以看到控制臺已經可以打印出相應的日志信息:
可以看到控制臺輸出了 DEBUG 和 TRACE 級別的日志信息,因為我們自定義設置的 Mapper 映射文件對應包下的日志級別為 TRACE,所以會打印出 TRACE 級別以上的日志信息。
最后說一下,在項目中,有時候我們需要跟蹤日志,會在代碼中自定義類似如下日志:
然后就可以通過設置日志級別來查看對應的信息。
tips:查看官方文檔是學習一門新語言最有效的方法。
系列預告:Mybatis 系列 5:OGNL 表達式
總結
以上是生活随笔為你收集整理的requirednew基于xml配置日志不回滚_Mybatis 系列 4:引入日志框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存升级,游戏新体验!b150m系列主板
- 下一篇: stm32 led屏控制卡_室内LED显