Mybatis與Log4j
最常用的日志輸出是Log4j,將相應的jar包和配置文件放到相應的位置,Mybatis就可以通過Log4j將SQL語句打印出來。
配置Log4j.properties
將log4j.properties放置根目錄:
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO
配置解釋
log4j.rootLogger=DEBUG,Console
代表root節點整個工程下所有輸出日志的地方配置的輸出的級別和輸出的位置。
log4j.logger.org.apache.ibatis=ERROR
代表特定包下的特定級別。log4j把日志分為ALL、TRACE&(跟蹤)、DEBUG(調試)、INFO(信息)、WARNING(警告)、ERROR(錯誤)、FITAL(致命)、OFF等幾個級別,級別依次升高。級別高的Level會屏蔽級別低的信息。
log4j.appender.Console=org.apache.log4j.ConsoleAppender
代表配置控制台的類。
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
代表配置布局。
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
代表自定義輸出內容的格式。其中ConversionPattern設置輸出格式的參數解釋如下:
%d 產生日志的時間
%t 產生日志所處的線程名稱
%-5p 輸出日志的級別,將占5位字符,不足5位用空格填補,-指的是在右邊補齊,沒有則在左邊
%c 輸出日志的包以及類的全名
%m 附加的信息
%n 換行
log4j.logger.org.apache=INFO
代表為特定的包(org.apache)配置特定的級別INFO,這樣就把上面總的級別DEBU掩蓋了,這樣一來,這個包下的DEBUG信息就不會輸出,就不會影響我們想要看的信息。
舉個例子
這是一個簡單的內容列表頁面完全輸出時的日志
2017-02-06 17:55:04,186 [http-nio-8080-exec-2] DEBUG [com.zzh.dao.IMessage.queryMessageList] - ==> Preparing: SELECT id, command, description, content FROM message
2017-02-06 17:55:04,226 [http-nio-8080-exec-2] DEBUG [com.zzh.dao.IMessage.queryMessageList] - > Parameters:
2017-02-06 17:55:04,328 [http-nio-8080-exec-2] DEBUG [com.zzh.dao.IMessage.queryMessageList] - < Total: 6