鍍金池/ 問答/Java  數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ log4j2如何輸出hibernate執(zhí)行的sql語句?

log4j2如何輸出hibernate執(zhí)行的sql語句?

問題描述

原先有一個SSH項目使用log4j管理日志,現(xiàn)在需要升級為log4j2,但是一直無法輸出hibernate執(zhí)行的sql語句到日志文件中。

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

項目使用SSH框架
現(xiàn)在使用hibernate的配置<prop key="hibernate.show_sql">true</prop>可以將sql語句輸出到控制臺
網(wǎng)上找到過配置但是無效

<!-- 打印sql語句 -->
<Logger name="org.hibernate.SQL" level="debug" additivity="false">
    <AppenderRef ref="console" />
</Logger>

<!-- 打印sql語句的參數(shù)綁定 -->
<Logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="trace" additivity="false">
    <AppenderRef ref="console" />
</Logger>

相關(guān)代碼

log4j2配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2 配置文件 -->
<!-- 日志級別 trace<debug<info<warn<error<fatal -->
<configuration status="debug">
    <!-- 自定義屬性 -->
    <Properties>
        <!-- 日志格式 -->
        <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%L) %5p %m%n</Property>
        <!-- 日志文件路徑 -->
        <Property name="filePath">D:/Tomcat 6.0/log4j/demo/</Property>
        <!-- debug級別日志文件名稱 -->
        <Property name="debugFileName">${filePath}/debug.log</Property>
        <!-- info級別日志文件名稱 -->
        <Property name="infoFileName">${filePath}/info.log</Property>
        <!-- error級別日志文件名稱 -->
        <Property name="errorFileName">${filePath}/error.log</Property>
    </Properties>
    
    <!-- 定義輸出器 -->
    <appenders>
        <!-- 控制臺輸出 -->
        <Console name="console" target="SYSTEM_OUT">
            <!-- 日志格式 -->
            <PatternLayout pattern="${pattern}"/>
        </Console>
        
        <!-- debug級別日志文件輸出 -->
        <RollingFile name="debug_appender" fileName="${debugFileName}"
                filePattern="${filePath}/%d{yyyy-MM-dd}/debug_%i.log">
            <!-- 過濾器 -->
            <Filters>
                <!-- 限制日志級別在debug及以上在info以下 -->
                <ThresholdFilter level="debug"/>
                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!-- 日志格式 -->
            <PatternLayout pattern="${pattern}"/>
            <!-- 策略 -->
            <Policies>
                <!-- 每隔一天轉(zhuǎn)存 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <!-- 文件大小 -->
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>
        
        <!-- info級別日志文件輸出 -->
        <RollingFile name="info_appender" fileName="${infoFileName}"
                filePattern="${filePath}/%d{yyyy-MM-dd}/info_%i.log">
            <!-- 過濾器 -->
            <Filters>
                <!-- 限制日志級別在info及以上在error以下 -->
                <ThresholdFilter level="info"/>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!-- 日志格式 -->
            <PatternLayout pattern="${pattern}"/>
            <!-- 策略 -->
            <Policies>
                <!-- 每隔一天轉(zhuǎn)存 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <!-- 文件大小 -->
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>
        
        <!-- error級別日志文件輸出 -->
        <RollingFile name="error_appender" fileName="${errorFileName}"
                filePattern="${filePath}/%d{yyyy-MM-dd}/error_%i.log">
            <!-- 過濾器 -->
            <Filters>
                <!-- 限制日志級別在error及以上 -->
                <ThresholdFilter level="error"/>
            </Filters>
            <!-- 日志格式 -->
            <PatternLayout pattern="${pattern}"/>
            <Policies>
                <!-- 每隔一天轉(zhuǎn)存 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <!-- 文件大小 -->
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>
    </appenders>
    
    <!-- 定義logger -->
    <loggers>
        
        <!-- 定義根logger -->
        <!-- 日志級別設(shè)備為debug 具體日志級別由appender限制 -->
        <Root level="debug">
            <!-- 輸出控制臺 -->
            <AppenderRef ref="console"/>
            <!-- 輸出debug級別日志文件 -->
            <AppenderRef ref="debug_appender"/>
            <!-- 輸出info級別日志文件 -->
            <AppenderRef ref="info_appender"/>
            <!-- 輸出error級別日志文件 -->
            <AppenderRef ref="error_appender"/>
        </Root>
    </loggers>
</configuration>
回答
編輯回答
情未了

試試加這個配置:

spring.jpa.show-sql=true
2017年10月10日 13:38