国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis 日志(JDK Log)

這篇具有很好參考價值的文章主要介紹了Mybatis 日志(JDK Log)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

上一篇我們介紹了Mybatis中的參數(shù),本篇我們使用JDK Log打印一下Mybatis運行時的日志,看一下Mybatis執(zhí)行的過程。

這里我選取上一篇的示例進行JDK Log的集成,這里如果您想對上一篇進行詳細了解,可以參考:

Mybatis參數(shù)(parameterType)https://blog.csdn.net/m1729339749/article/details/132548838

一、配置Mybatis

在mybatis-config.xml文件中配置logImpl

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="logImpl" value="JDK_LOGGING"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="org.gjt.mm.mysql.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;useSSL=false&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="horse"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="demo/UserInfoMapper.xml" />
    </mappers>
</configuration>

在配置文件中,我們配置了logImpl,值配置成了JDK_LOGGING,代表的是使用JDK提供的日志系統(tǒng)

二、JDK日志配置

在resources目錄下新建logging.properties配置文件

handlers=java.util.logging.ConsoleHandler
.level=FINER

java.util.logging.ConsoleHandler.level=ALL
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tT.%1$tL %4$s %3$s - %5$s%6$s%n

handlers代表的是日志處理器,java.util.logging.ConsoleHandler處理器用于直接在控制臺打印日志

.level代表的是全局日志級別

java.util.logging.ConsoleHandler.level設置的是處理器需要處理的日志級別

java.util.logging.ConsoleHandler.formatter設置的是處理器打印日志使用的格式化器

java.util.logging.SimpleFormatter.format設置的是處理器打印日志的格式

????? 1$:代表的是執(zhí)行時間

? ? ? 2$:代表的是調用源(Jdk Log的調用源都為Jdk14LoggingImpl)

????? 3$:代表的是日志名稱

????? 4$:代表的是日志級別

????? 5$:代表的是日志內(nèi)容

????? 6$:代表的是異常信息

格式的定義需要參考java.util.Formatter類

三、引入日志配置

JDK Log提供了兩種引入日志配置的方式:

1、class配置

我們在cn.horse.demo下新建JdkLogConfig類

JdkLogConfig類:

package cn.horse.demo;

import java.io.IOException;
import java.io.InputStream;
import java.util.logging.LogManager;

public class JdkLogConfig {

    public JdkLogConfig() {
        try {
            InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("logging.properties");
            LogManager.getLogManager().readConfiguration(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

在程序入口(main方法)配置系統(tǒng)屬性:

System.setProperty("java.util.logging.config.class", "cn.horse.demo.JdkLogConfig");

或者在運行時配置VM參數(shù):

-Djava.util.logging.config.class=cn.horse.demo.JdkLogConfig

Mybatis 日志(JDK Log),Mybatis,mybatis,java

class配置方式更加靈活,配置來源更加多樣化,例如可以從Mysql、ldap等庫中讀取

2、file配置(不建議使用)

在程序入口(main方法)配置系統(tǒng)屬性:

System.setProperty("java.util.logging.config.file", "日志配置文件的絕對路徑(不能包含中文、空格)");

或者在運行時配置VM參數(shù):

-Djava.util.logging.config.file=日志配置文件的絕對路徑(不能包含中文、空格)

Mybatis 日志(JDK Log),Mybatis,mybatis,java

四、示例測試

測試:

這里我們查詢年齡大于21歲的所有用戶

StatementUtils.find("cn.horse.demo.UserInfoMapper.findByAge", 21);

執(zhí)行的結果如下:

2023-08-29 16:11:27.767 詳細 org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.jdk14.Jdk14LoggingImpl' adapter.
2023-08-29 16:11:27.843 詳細 org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.jdk14.Jdk14LoggingImpl' adapter.
2023-08-29 16:11:27.854 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
2023-08-29 16:11:27.855 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
2023-08-29 16:11:27.855 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
2023-08-29 16:11:27.855 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - PooledDataSource forcefully closed/removed all connections.
2023-08-29 16:11:27.900 詳細 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
2023-08-29 16:11:28.058 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - Created connection 1379435698.
2023-08-29 16:11:28.059 詳細 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@523884b2]
2023-08-29 16:11:28.062 詳細 cn.horse.demo.UserInfoMapper.findByAge - ==>  Preparing: SELECT ID, USERNAME name, AGE FROM T_USER WHERE AGE > ? 
2023-08-29 16:11:28.094 詳細 cn.horse.demo.UserInfoMapper.findByAge - ==> Parameters: 21(Integer)
2023-08-29 16:11:28.105 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==    Columns: ID, name, AGE
2023-08-29 16:11:28.106 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==        Row: 2, 李四, 22
2023-08-29 16:11:28.108 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==        Row: 3, 王五, 24
2023-08-29 16:11:28.109 詳細 cn.horse.demo.UserInfoMapper.findByAge - <==      Total: 2
2023-08-29 16:11:28.110 詳細 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@523884b2]
2023-08-29 16:11:28.113 詳細 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@523884b2]
2023-08-29 16:11:28.114 詳細 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 1379435698 to pool.
{id: 2, name: 李四, age: 22}
{id: 3, name: 王五, age: 24}

在日志中我們可以看到預處理SQL語句,傳遞參數(shù),返回的查詢結果

2023-08-29 16:11:28.062 詳細 cn.horse.demo.UserInfoMapper.findByAge - ==>  Preparing: SELECT ID, USERNAME name, AGE FROM T_USER WHERE AGE > ? 
2023-08-29 16:11:28.094 詳細 cn.horse.demo.UserInfoMapper.findByAge - ==> Parameters: 21(Integer)
2023-08-29 16:11:28.105 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==    Columns: ID, name, AGE
2023-08-29 16:11:28.106 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==        Row: 2, 李四, 22
2023-08-29 16:11:28.108 較詳細 cn.horse.demo.UserInfoMapper.findByAge - <==        Row: 3, 王五, 24
2023-08-29 16:11:28.109 詳細 cn.horse.demo.UserInfoMapper.findByAge - <==      Total: 2

預處理:Preparing: SELECT ID, USERNAME name, AGE FROM T_USER WHERE AGE > ?

傳遞參數(shù):Parameters: 21(Integer)

查詢結果:Columns: ID, name, AGE

??????????? Row: 2, 李四, 22

??????????? Row: 3, 王五, 24

??????????? Total: 2

五、日志篩選

上面的日志信息打印了全部的詳細日志記錄,但是我只對SQL語句執(zhí)行的過程比較關心,其他不相關的信息只會造成干擾,我們需要修改日志的配置,才能輸出我們想要的日志信息:

handlers=java.util.logging.ConsoleHandler
.level=INFO

cn.horse.demo.UserInfoMapper.level=FINER
java.util.logging.ConsoleHandler.level=ALL
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tT.%1$tL %4$s %3$s - %5$s%6$s%n

將全局的日志級別設置為INFO, 將日志名稱以cn.horse.demo.UserInfoMapper命名空間開頭的日志級別設置為FINER

測試:

這里我們查詢年齡大于21歲的所有用戶

StatementUtils.find("cn.horse.demo.UserInfoMapper.findByAge", 21);

執(zhí)行的結果如下:

Mybatis 日志(JDK Log),Mybatis,mybatis,java

?詳細日志中只保留了SQL執(zhí)行的過程文章來源地址http://www.zghlxwxcb.cn/news/detail-685471.html

到了這里,關于Mybatis 日志(JDK Log)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Mybatis小白從0到90%精講】15: Mybatis配置打印SQL日志

    【Mybatis小白從0到90%精講】15: Mybatis配置打印SQL日志

    日志(Log)是每個程序都不可或缺的一部分,它可以幫助開發(fā)人員診斷和調試問題。Mybatis,作為一款備受贊譽的ORM框架,自然也提供了強大的日志功能。 它不僅提供了 內(nèi)置的標準實現(xiàn) ,還支持 集成各種主流的日志框架 ,讓我們可以輕松地 查看最終執(zhí)行的SQL語句 ,這在進行數(shù)

    2024年02月05日
    瀏覽(22)
  • mybatis打印sql日志

    我們?nèi)粘2僮鲾?shù)據(jù)庫的過程一般都是使用mybatis中執(zhí)行sql操作,有時候為了確認mybatis拼接的sql是否正確,就需要在日志中打印出具體的sql語句,對應的入?yún)⒁约皵?shù)據(jù)庫的返回值 一.sql日志輸出到控制臺,修改mybatis-config文件,指定如下配置: 二.sql日志輸出到文件,修改mybatis

    2024年02月15日
    瀏覽(20)
  • Mybatis基礎模塊-日志管理

    Mybatis基礎模塊-日志管理

    適配器使接口不兼容的對象可以相互合作。 Java的日志框架有很多,Log4j,Log4j2,Apache Commons Log,java.util.logging,slf4j等,接口不盡相同,Mybatis為了統(tǒng)一匹配這些框架,使用到了適配器模式。 Mybatis自定義了日志接口:org.apache.ibatis.logging.Log。 以下為其類圖: 上圖的實現(xiàn)相當于adapt

    2024年02月16日
    瀏覽(18)
  • 【八】mybatis 日志模塊設計

    【八】mybatis 日志模塊設計

    簡介: 閑來無事閱讀一下mybatis的日志模塊設計,學習一下優(yōu)秀開源框架的設計思路,提升自己的編碼能力 在Mybatis內(nèi)部定義了4個級別:Error:錯誤 、warn:警告、debug:調試、trance,日志優(yōu)先級如下: errorwarndebugtrance 如下圖可以看到mybatis日志模塊的源碼結構圖: ?mybatis通過適配

    2024年02月14日
    瀏覽(15)
  • mybatis日志工廠

    mybatis日志工廠

    如果一個數(shù)據(jù)庫操作,出現(xiàn)異常,我們需要排錯,日志就是最好的助手 官方給我們提供了logImpl:指定 MyBatis 所用日志的具體實現(xiàn),未指定時將自動查找。 ?在配置文件里添加: ?若要使用非標準日志需要先導包,例如Log4j 導入包: ? 1.在要使用的地方導入包:import org.apach

    2024年02月15日
    瀏覽(19)
  • Springboot + MyBatis 進行日志輸出

    Springboot + MyBatis 進行日志輸出

    ??書接上回,咱們處理完成 druid 數(shù)據(jù)源連接池日志后,所有執(zhí)行sql的日志都可以打印出來了,但是問題也是接踵而來,日志文件中密密麻麻都是日志,而當我想要 查看某個dao的sql 或者 想要通過sql找到其所在dao 是非常困難的,通過考慮決定,將druid日志輸出到一個單獨的日

    2024年02月13日
    瀏覽(19)
  • Mybatis設置sql打印日志

    第一種:使用 mybatis 自帶的打印 第二種:使用 log4j 日志打印 備注:log4j 運行級別調到DEBUG,可以在控制臺打印出mybatis運行的sql語句。 #將等級為DEBUG的日悲信慮出到console和file這網(wǎng)個日的地,console和file的定義在下面的代碼 log4j.rootLogger=DEBUG,console,file #控制臺輸出的相關設置

    2024年02月06日
    瀏覽(17)
  • Mybatis源碼分析_日志模塊 (1)

    Mybatis源碼分析_日志模塊 (1)

    不得不承認,學習MyBatis的時間成本要比學習Spring低很多,Mybatis是我所了解過的代碼量最小、整體架構最簡單,但是又是最具有學習價值的一個框架。如果,你想快速的閱讀一個框架的源碼,并且掌握這個框架的精髓,那么Mybatis一定是你的首選。 在開始我們的源碼閱讀之前,

    2024年02月10日
    瀏覽(18)
  • MyBatis junit 日志框架logback

    MyBatis junit 日志框架logback

    JUnit是專門做單元測試的組件 !-- junit依賴 -- dependency ? ? groupIdjunit/groupId ? ? artifactIdjunit/artifactId ? ? version4.13.2/version ? ? scopetest/scope /dependency pom.xml test:? ? ? ? 引入日志框架logback 引入日志框架的目的是為了看清楚mybatis執(zhí)行的具體sql mybatis – MyBatis 3 | 配置 指定 MyBatis 所

    2024年02月09日
    瀏覽(23)
  • Mybatis 日志(Apache Commons Logging)

    Mybatis 日志(Apache Commons Logging)

    之前我們介紹了使用JDK Log打印Mybatis運行時的日志;本篇我們介紹使用Apache Commons Logging打印Mybatis運行時的日志。 如何您對Mybatis中使用JDK Log不太了解,可以參考: Mybatis 日志(JDK Log) https://blog.csdn.net/m1729339749/article/details/132565362 在mybatis-config.xml文件中配置logImpl 在配置文件中,

    2024年02月07日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包