今天整合springboot2 + mybatis + logback 遇到了在日志中sql列印不出來的坑,在網上找了好久,都不是我遇到的問題,這里吐槽一下下現在的博客質量,好多都是抄襲的,也沒有標注轉載,
先說下要將sql列印到日志的配置
1、在mybatis.xml配置中增加以下配置
<!--指定 MyBatis 增加到日志名稱的前綴,-->
<setting name="logPrefix" value="https://www.cnblogs.com/masy-lucifer/archive/2020/11/06/m-shop-mybatis-sql." />
<!--指定 MyBatis 所用日志的具體實作,未指定時將自動查找, SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING-->
<setting name="logImpl" value="https://www.cnblogs.com/masy-lucifer/archive/2020/11/06/SLF4J" />
注:這里注意下logPrefix的value需要帶“.”
2、在logback-spring中增加如下配置
<logger name="m-shop-mybatis-sql" level="debug"></logger>
注:這里的name屬性需要與mybatis檔案中logPrefix的值對應,但這里不帶“.”
那么這里說我遇到的問題吧,以下是我的logback中部分配置
<!--將日志輸出到控制臺-->
<appender name="CONSOLE" >
<filter >
<level>info</level>
</filter>
<encoder >
<!--列印格式-->
<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列印在控制臺的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/204726.html
標籤:其他
上一篇:Java從零進階自學路線圖
