SpringBoot整合Log日志打印SQL問題

  1. SpringBoot中的默認(rèn)日志實(shí)現(xiàn)是通過logback實(shí)現(xiàn)的,SpringBoot已經(jīng)幫我們配置好了,所以我們是可以直接拿來用的戳這里了解SpringBoot的默認(rèn)日志

  2. 配置默認(rèn)日志級(jí)別時(shí)出現(xiàn)的錯(cuò)誤,Spring boot 集成logging的時(shí)候報(bào)Failed to bind properties under 'logging.level' ..錯(cuò)

  3. 實(shí)現(xiàn)boot中默認(rèn)日志框架打印sql日志到控制臺(tái)功能
    只需要在yml或者properties文件中添加日志打印級(jí)別所在的包就可以。

# log配置
logging:
  level:
# 下方的路徑填寫的是mapper接口所在的全限定包名
    com.fh.bookstore.dao: debug

優(yōu)點(diǎn):無需引入其他依賴,SpringBoot已經(jīng)集合得到,快速方便,配合logback.xml還能做到自定義配色的打印。
缺點(diǎn):MyBatis以及mybatis-plus打印的SQL日志是在Debug級(jí)別的,而且只能打印在配置文件中寫死的mapper接口全限定類名內(nèi)的,項(xiàng)目小的話完全沒有問題,如果項(xiàng)目大就會(huì)造成,配置文件的繁瑣、冗余、膨脹,僅僅是打印sql日志的接口全限定類名都得寫好幾十個(gè),極大的不方便后期維護(hù)。

  1. 配置logback的日志打印顏色(這里直接拿eladmin框架的代碼過來看)
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="false">
    <contextName>elAdmin</contextName>
    <property name="log.charset" value="utf-8" />
    <!--下邊的%black就是要改變的顏色配置-->
    <property name="log.pattern" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)" />

    <!--輸出到控制臺(tái)-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
            <charset>${log.charset}</charset>
        </encoder>
    </appender>

    <!--普通日志輸出到控制臺(tái)-->
    <root level="info">
        <appender-ref ref="console" />
    </root>

    <!--監(jiān)控sql日志輸出 -->
    <logger name="jdbc.sqlonly" level="INFO" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <logger name="jdbc.resultset" level="ERROR" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <!--  如想看到表格數(shù)據(jù),將OFF改為INFO  -->
    <logger name="jdbc.resultsettable" level="OFF" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <logger name="jdbc.connection" level="OFF" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <logger name="jdbc.sqltiming" level="OFF" additivity="false">
        <appender-ref ref="console" />
    </logger>

    <logger name="jdbc.audit" level="OFF" additivity="false">
        <appender-ref ref="console" />
    </logger>
</configuration>
  1. 為了解決SQL日志打印的問題
    使用log4jdbc依賴包,配上eladmin的logback配置,做日志的SQL打印效果


    image.png

log4jdbc和log4jdbc-log4j2-jdbc4.1的區(qū)別是后者添加了一個(gè)SQL結(jié)果表格的打印功能,要開啟這個(gè)功能需要在logback中更改resultsettable打印級(jí)別為INFO,輸出效果為。

書店項(xiàng)目中已經(jīng)導(dǎo)入了org.bgee.log4jdbc-log4j2包,接下來去寫org.bgee.log4jdbc-log4j2配置文件,然后配置SQL的驅(qū)動(dòng)鏈接添加jdbc

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容