IDEA 集成log4j將SQL語句打印在控制臺上的實現(xiàn)操作
適用地點:maven的mybatis的項目
配置log4j.properties
內(nèi)容為
log4j.rootLogger=error, Console log4j.logger.cn.bdqn.dao=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
/*****************************************************/
同時maven庫找到如下三個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
補充:mybatis打印SQL日志最終解決方案
問題
在程序調(diào)試時想要mybatis打印SQL日志,但它并沒有類似hibernate所提供的showsql功能,因此只能通過配置log4j日志輸出級別的方式來打印sql。
但網(wǎng)上搜到的答案幾乎都是下面的配置方式:
log4j.rootLogger=info,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ###顯示SQL語句部分 log4j.logger.com.ibatis=DEBUG log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
rootLogger的級別是info,是為了防止其他類輸出debug的調(diào)試代碼(rootLogger若設(shè)為debug了,mybatis也沒必要再設(shè)置了)。
但這段代碼根本沒有作用!
解決方案
經(jīng)過一系列的嘗試,終于找到了解決方案,直接修改dao層(將com.github.vita.code.dao修改為你項目中dao的路徑)的輸出級別即可:
<loggers> <Logger name="com.github.vita.code.dao" level="trace" /> <root level="info"> <appender-ref ref="Console"/> </root> </loggers>
上面的是log4j 2的XML配置,log4j中對應(yīng)的配置為log4j.logger.com.github.vita.code.dao=trace。
這兒把輸出調(diào)成了更低的trace,可以看到更詳細的信息。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
java實現(xiàn)批量導(dǎo)入Excel表格數(shù)據(jù)到數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了java實現(xiàn)批量導(dǎo)入Excel表格數(shù)據(jù)到數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-08-08Springboot 如何指定獲取出 yml文件里面的配置值
這篇文章主要介紹了Springboot 如何指定獲取出 yml文件里面的配置值操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Java實現(xiàn)byte[]轉(zhuǎn)List的示例代碼
byte,即字節(jié),由8位的二進制組成。在Java中,byte類型的數(shù)據(jù)是8位帶符號的二進制數(shù)。List?是一個接口,它繼承于Collection的接口。它代表著有序的隊列。本文將介紹如何通過java實現(xiàn)byte[]轉(zhuǎn)List,需要的可以參考一下2022-01-01SpringBoot使用Scheduling實現(xiàn)定時任務(wù)的示例代碼
Spring Boot提供了一種方便的方式來實現(xiàn)定時任務(wù),即使用Spring的@Scheduled注解,通過在方法上添加@Scheduled注解,我們可以指定方法在何時執(zhí)行,本文我們就給大家介紹一下SpringBoot如何使用Scheduling實現(xiàn)定時任務(wù),需要的朋友可以參考下2023-08-08