IDEA 集成log4j將SQL語(yǔ)句打印在控制臺(tái)上的實(shí)現(xiàn)操作
適用地點(diǎn):maven的mybatis的項(xiàng)目
配置log4j.properties
內(nèi)容為
log4j.rootLogger=error, Console log4j.logger.cn.bdqn.dao=debug #Consolelog4j.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
/*****************************************************/
同時(shí)maven庫(kù)找到如下三個(gè)jar包
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version></dependency><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> <scope>test</scope></dependency>
將其復(fù)制到pom.xml
補(bǔ)充:mybatis打印SQL日志最終解決方案
問(wèn)題在程序調(diào)試時(shí)想要mybatis打印SQL日志,但它并沒(méi)有類(lèi)似hibernate所提供的showsql功能,因此只能通過(guò)配置log4j日志輸出級(jí)別的方式來(lái)打印sql。
但網(wǎng)上搜到的答案幾乎都是下面的配置方式:
log4j.rootLogger=info,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.SimpleLayout###顯示SQL語(yǔ)句部分log4j.logger.com.ibatis=DEBUGlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG
rootLogger的級(jí)別是info,是為了防止其他類(lèi)輸出debug的調(diào)試代碼(rootLogger若設(shè)為debug了,mybatis也沒(méi)必要再設(shè)置了)。
但這段代碼根本沒(méi)有作用!
解決方案經(jīng)過(guò)一系列的嘗試,終于找到了解決方案,直接修改dao層(將com.github.vita.code.dao修改為你項(xiàng)目中dao的路徑)的輸出級(jí)別即可:
<loggers> <Logger name='com.github.vita.code.dao' level='trace' /> <root level='info'> <appender-ref ref='Console'/> </root></loggers>
上面的是log4j 2的XML配置,log4j中對(duì)應(yīng)的配置為log4j.logger.com.github.vita.code.dao=trace。
這兒把輸出調(diào)成了更低的trace,可以看到更詳細(xì)的信息。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼2. asp.net core項(xiàng)目授權(quán)流程詳解3. CSS3中Transition屬性詳解以及示例分享4. jsp文件下載功能實(shí)現(xiàn)代碼5. 開(kāi)發(fā)效率翻倍的Web API使用技巧6. bootstrap select2 動(dòng)態(tài)從后臺(tái)Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼7. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式8. html中的form不提交(排除)某些input 原創(chuàng)9. PHP橋接模式Bridge Pattern的優(yōu)點(diǎn)與實(shí)現(xiàn)過(guò)程10. ASP常用日期格式化函數(shù) FormatDate()
