mybatis 日志的使用以及设计
1、为什么要配置mybtis的logger?
mybatis自己设计以及实现了org.apache.ibatis.logging.Log接口。
Mybatis为了避免对第三方的日志包存在强依赖,内部的Log采用了代理模式。通过配置的方式,代理真实的日志对象
如果没有配置log,mybatis会按照以下顺序尝试加载Log:SL4j->Common logging->log4j2->log4j->jdkLoging->noLogging
   static {
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useSlf4jLogging();
       }
     });
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useCommonsLogging();
       }
     });
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useLog4J2Logging();
       }
     });
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useLog4JLogging();
       }
     });
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useJdkLogging();
       }
     });
     tryImplementation(new Runnable() {
       @Override
       public void run() {
         useNoLogging();
       }
     });
   }
加载具体Logger的方式:
通过调用具体Logger的构造函数,反射出。
private static void setImplementation(Class<? extends Log> implClass) {
    try {
      Constructor<? extends Log> candidate = implClass.getConstructor(String.class);
      Log log = candidate.newInstance(LogFactory.class.getName());
      if (log.isDebugEnabled()) {
        log.debug("Logging initialized using '" + implClass + "' adapter.");
      }
      logConstructor = candidate;
    } catch (Throwable t) {
      throw new LogException("Error setting Log implementation.  Cause: " + t, t);
    }
  }
mybatis 日志的使用以及设计的更多相关文章
- Java日志系统框架的设计与实现
		推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程 ... 
- 笔记:MyBatis 日志显示-log4j2
		在ClassPath路径创建log4j2.xml配置文件,增加如下日志配置: <?xml version="1.0" encoding="UTF-8"?& ... 
- 《深入理解mybatis原理7》 MyBatis的二级缓存的设计原理
		<深入理解mybatis原理> MyBatis的二级缓存的设计原理 MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能.本文将全面分 ... 
- 《深入理解mybatis原理》 MyBatis的二级缓存的设计原理
		MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能.本文将全面分析MyBatis的二级缓存的设计原理. 如上图所示,当开一个会话时,一个SqlS ... 
- Mybatis日志体系
		承接上一篇关于spring 5.x的日志体系,本篇看看Mybatis的日志体系及实现,Mybatis版本基于3.x. 关于mybatis的官方文档比较友好,分门别类,各有论述,如mybatis官方文档 ... 
- mybatis日志,打印sql语句,输出sql
		mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ... 
- springboot+mybatis日志显示SQL的最简单方法
		在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增:logging.level.cn.piesat.mapper=debug 注意:其中cn.pi ... 
- mybatis深入理解(六)-----MyBatis的二级缓存的设计原理
		MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能.本文将全面分析MyBatis的二级缓存的设计原理. 1.MyBatis的缓存机制整体设计以及 ... 
- 如何优雅的将Mybatis日志中的Preparing与Parameters转换为可执行SQL
		原文链接 疫情期间大家宅在家里是不是已经快憋出“病”了~~  公司给开了VPN,手机电脑都能连,手机装上APP测试包,就能干活了,所以walking从2020.02.01入京以来,已经窝在家里11天 ... 
随机推荐
- i love my girl
			for(int i=0;i<forever;i++) System.out.println("i love my girl!"); 
- Watchman 的安装
			先查看gcc的版本 gcc --version 如果gcc的版本低于4.8,就要升级gcc的版本了.在这里,就不延时升级gcc了, 安装watchman git clone https://githu ... 
- SDKManager无法更新问题解决办法
			用大连东软的镜像代理 配置步骤 启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manager - Sett ... 
- Web测试常见问题点汇总
			UI测试 [目标] 确保用户可以访问产品所提供的浏览功能.符合企业或行业标准,包含用户易用性,友好性.可操作性等 [关注点] 菜单.对话框以及上边的文字.按钮.错误提示.帮助信息.图标.位置等. [常 ... 
- java 环境的安装、设置免密登陆、进行hadoop安装、关闭防火墙
			1.去这个网站下载对应的版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html我这 ... 
- 51Nod - 1433 0和5  找规律
			小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前 ... 
- Eclipse上传新项目到GitLab
			E&T: Eclipse; GitLab; GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq ... 
- ssh_exchange_identification: read: Connection reset by peer
			vim /etc/hosts.deny 删除ip 借鉴:https://www.sunnyos.com/article-show-81.html 
- Linux df -h空间显示不正确
			今天发现一个测试数据库磁盘空间快满了,准备将几个不再用的表空间删除.通过以下命令删除表空间内容及数据文件. drop tablespace tablespace_name including cont ... 
- WinForm控件开发总结目录
			WinForm控件开发总结(一)------开篇 WinForm控件开发总结(二)------使用和调试自定义控件 WinForm控件开发总结(三)------认识WinForm控件常用的Attrib ... 
