springboot 配置日誌 打印不出來sql的解決方法
阿新 • • 發佈:2020-11-18
今天整合springboot2 + mybatis + logback 遇到了在日誌中sql打印不出來的坑,在網上找了好久,都不是我遇到的問題,這裡吐槽一下下現在的部落格質量,好多都是抄襲的,也沒有標註轉載。
先說下要將sql列印到日誌的配置
1、在mybatis.xml配置中增加以下配置
<!--指定 MyBatis 增加到日誌名稱的字首。--> <setting name="logPrefix" value="m-shop-mybatis-sql." /> <!--指定 MyBatis 所用日誌的具體實現,未指定時將自動查詢。 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檔案中logPrefix的值對應,但這裡不帶“.”
那麼這裡說我遇到的問題吧,以下是我的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,但是有logger 在應該是可以打印出來的,但是我在CONSOLE的中也配置了級別為info,這裡的設定會攔截logger設定的級別。
最後在說下sql列印在控制檯的區別:
以上第一張圖是mybatis自己設定列印在控制檯的,第二張圖是mybatis列印在logback日誌中,logback列印在控制檯的。
以上就是springboot 配置日誌 打印不出來sql的解決方法的詳細內容,更多關於springboot 打印不出sql的資料請關注我們其它相關文章!