您好,登錄后才能下訂單哦!
這篇文章給大家介紹springboot 配置日志中sql無法打印怎么解決,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出來的坑,在網上找了好久,都不是我遇到的問題,這里吐槽一下下現(xiàn)在的博客質量,好多都是抄襲的,也沒有標注轉載。
先說下要將sql打印到日志的配置
1、在mybatis.xml配置中增加以下配置
<!--指定 MyBatis 增加到日志名稱的前綴。--> <setting name="logPrefix" value="m-shop-mybatis-sql." /> <!--指定 MyBatis 所用日志的具體實現(xiàn),未指定時將自動查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING--> <setting name="logImpl" value="SLF4J" />
注:這里注意下logPrefix的value需要帶“.”
2、在logback-spring中增加如下配置
<logger name="m-shop-mybatis-sql" level="debug"></logger>
注:這里的name屬性需要與mybatis文件中l(wèi)ogPrefix的值對應,但這里不帶“.”
那么這里說我遇到的問題吧,以下是我的logback中部分配置
<!--將日志輸出到控制臺--> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>info</level> </filter> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--打印格式--> <pattern>${LOG_FORMAT}</pattern> <!-- 設置字符集 --> <charset>${ENCODING}</charset> </encoder> </appender> <logger name="m-shop-mybatis-sql" level="debug"></logger> <springProfile name="dev,test"> <!-- 日志輸出級別 --> <root level="info"> <appender-ref ref="CONSOLE" /> </root> </springProfile> <springProfile name="prod"> <!-- 日志輸出級別 --> <root level="info"> <appender-ref ref="FILE" /> </root> </springProfile>
這是我最開始的配置,就是打印不出sql來,最后找到問題,是因為級別的原因。
解決方法
將這里的info改為debug,就可以打印出來了。
解釋下原因:
我使用的是dev,日志打印級別為info,設置logger為mybatis的打印級別為debug,雖然info級別大于debug,但是有l(wèi)ogger 在應該是可以打印出來的,但是我在CONSOLE的中也配置了級別為info,這里的設置會攔截logger設置的級別。
最后在說下sql打印在控制臺的區(qū)別:
以上第一張圖是mybatis自己設置打印在控制臺的,第二張圖是mybatis打印在logback日志中,logback打印在控制臺的。
關于springboot 配置日志中sql無法打印怎么解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。