1. 程式人生 > >如何在Hibernate log中顯示所執行的sql的引數值 (以logback.xml的配置為例子)

如何在Hibernate log中顯示所執行的sql的引數值 (以logback.xml的配置為例子)

因為Hibernate使用slf4j框架 (slf4j + logback)記錄日誌, 所以這裡以 logback.xml 作為例子,具體配置直接看例子:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <!--定義日誌檔案的儲存地址 勿在 LogBack 的配置中使用相對路徑-->  
    <property name="LOG_HOME" value="c:/log" />  
    <!-- 控制檯輸出 -->   
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日誌輸出編碼 -->  
       <Encoding>UTF-8</Encoding>   
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日誌檔案 -->   
    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <Encoding>UTF-8</Encoding>   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日誌檔案輸出的檔名-->
            <FileNamePattern>${LOG_HOME}/myApp.log.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日誌檔案最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender> 

   <!-- show parameters for hibernate sql 專為 Hibernate 定製 -->  

   <!-- 主要是下面這一句 -->  

    <logger name="org.hibernate.type.descriptor.sql.BasicBinder"  level="TRACE" />  
    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor"  level="DEBUG" />  
<!--     <logger name="org.hibernate.SQL" level="DEBUG" />
    <logger name="org.hibernate.type" level="INFO" />
    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />  
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />   -->
    
    <!-- 日誌輸出級別 -->
    <root level="WARN">   
        <appender-ref ref="STDOUT" />   
       <!--  <appender-ref ref="FILE" />    -->
    </root> 
     
     <!--日誌非同步到資料庫 -->  
    <!-- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->
</configuration>

相關推薦

如何在Hibernate log顯示執行sql數值 (logback.xml配置例子)

因為Hibernate使用slf4j框架 (slf4j + logback)記錄日誌, 所以這裡以 logback.xml 作為例子,具體配置直接看例子: <?xml version="1.0" encoding="UTF-8"?> <configura

儲存過程傳參執行sql語句

CREATE OR REPLACE PROCEDURE XXX.xXX( //傳進來的引數值,使用逗號隔開 workProSchname in varchar2(200), xuenian in varchar2(200), typeid in varchar2(200),

在nginx日誌access log可以記錄POST請求的數值

1)      在nginx日誌access log可以記錄POST請求的引數值 實現程度:日誌中可以顯示POST請求所提交的引數值 問題: 日誌中文顯示十六進位制(在配置檔案中配置中文也無效) 沒有對json資料進行測試,正文型別為:Content-T

在document的click事件如何獲取元素的數值

html: <li rid="24" type="1" class="ulitemlicontent">       <div class="ulitemcontent"> <div>dd(我自己)</d

ios --轉載-從URL擷取包含的引數,並且字典的形式返回和引數字典轉URL

- (NSString *)keyValueStringWithDict:(NSDictionary *)dict { if (dict == nil) { return nil; } NSMutableString *string = [NSMutableStr

Tensorflow梯度下降法更新數值

tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)TensorFlow經過使用梯度下降法對損失函式中的變數進行修改值,預設修改tf.Variable(tf.zeros([784,10]))為Varia

避免對函式繼承得來的預設數值進行重定義

讓我們開門見山的討論本話題:繼承一個含有預設引數值的虛擬函式。 此情況下,本條目的證明問題則顯得十分了然:虛擬函式是動態繫結的,而預設引數值是靜態繫結的。 你說啥?靜態綁定於動態繫結之間的區別已

servlet得到所以提交的數值

System.out.println(request.getMethod());//得到提交引數的方法        Enumeration names = request.getParameterNames();        while(names.hasMoreElem

在SpringAOP如何獲取方法的數值(實體類)以及引數名

 廢話不多說直接上程式碼 引數對了效果就可以出來  返回值是一個map key 是引數名稱 value 是引數值, private static Map getFieldsName(Proceedi

js對函式設定預設數值的3種方法

第一種方法: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//設定引數a的預設值為1 var b = arguments[1] ? arguments[1] :

五三、提取瀏覽器 url 的引數名和數值,生成一個key/value 的物件

function getUrlParamObj(){ var obj = {}; //獲取url的引數部分 var params = window.location.search

springredis連線池版單節點使用(xml配置及非xml配置

1.依賴 <!--引入reids--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId

資料庫sql互轉(oracle轉mysql例子

轉自: https://blog.csdn.net/sinat_32366329/article/details/76402059   在PowerDesinger裡找到 File -->> Reverse Engineer --->> Database  

Nginx學習之路(八)Nginx的事件驅動過程詳解-----listenfd註冊過程

Nginx的高效得益於它的事件驅動機制,整個事件驅動機制基本框架就是linux下的select,poll,epoll這幾個IO多路複用模式,但是nginx絕不單單只是使用它們這麼簡單,今天以epoll模式為例,從nginx最開始的listenfd的監聽的過程來說明nginx是

springboot過濾器的使用(logback-日誌記錄例)

過濾器和攔截器的區別,過濾器和攔截器的用途,面試經常被問到:https://blog.csdn.net/qq_36411874/article/details/53996873,這篇部落格寫的很詳細。 使用攔截器記錄日誌的案例:https://blog.csdn.net/qq_3128918

N76E003 復位腳(P20)配置輸入的兩種方法

由於N76E003管腳比較少,17個標準通用管腳,另外還有一個只能做輸入的引腳(RESET),在專案中就可能需要用到RESET引腳作為輸入,那麼問題來了,怎麼配置RESET引腳當作輸入呢?這裡介紹兩種方法。 先來看下手冊中的介紹,在“配置字”這一章。 主要配置紅色框的位,RPD(R

Mybatis模糊查詢時相關的引數傳遞及xml配置

本文對使用Mybatis框架進行模糊查詢時出現問題的地方進行一下總結: 1.當查詢引數存在Map中時,可將查詢引數通過map.put("name","%"+dto.getName().trim()+"

VS2012 未能將網站XXX配置使用ASP.NET 4.5.為了使此網站正確執行,您必須將它手動配置ASP.NET 4.5

前言 最近剛開始敲牛腩,在新建Web專案的時候出現瞭如下圖的提示 原因  是因為咱們卻了一些元件 解決措施 進入微軟官網下載缺少的元件並安裝         具體的下載內容如下圖 總結:當

如何在 Java 正確使用 wait, notify 和 notifyAll – 生產者消費者模型

wait, notify 和 notifyAll,這些在多執行緒中被經常用到的保留關鍵字,在實際開發的時候很多時候卻並沒有被大家重視。本文對這些關鍵字的使用進行了描述。 在 Java 中可以用 wait、notify 和 notifyAll 來實現執行緒間的通訊。。舉個例

hibernate框架配置顯示sql語句

per 控制 col property hiberna color sql 輸出 最好 使用Hibernate的框架開發時,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true<