• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MyBatis七MyBatis日志配置log4j的使用

武飞扬头像
秋秋秋叶
帮助2

十四、MyBatis日志配置

MyBatis作为一个封装好的ORM框架,其运行过程我们没办法去跟踪,为了让开发者了解MyBatis执行流程及每一个执行步骤所完成的工作,MyBatis框架本身集成了log4j日志框架(它本身没有,需要添加log4j依赖),对运行的过程进行跟踪记录。我们只需对MyBatis进行相关的日志配置,就可以看到MyBatis运行过程中的日志信息。

log4j中的4,读成four,谐音“for”的意思。

14.1 添加日志框架依赖

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

14.2 添加日志配置文件

  • 在resources目录下创建名为log4j.properties文件(必须在这个目录下,必须叫这个名字)

  • log4j.properties文件中配置日志输出的方式

    • log4j.rootLogger=DEBUG,stdout
      # MyBatis logging configuration...
      log4j.logger.org.mybatis.example.BlogMapper=TRACE
      # Console output...
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=[%t] %5p - %m%n
      
    • log4j.rootLogger=DEBUG,stdout

      声明日志的输出级别及输出方式。

      告诉log4j,我要输出什么类型的信息(DEBUG及以上级别的);
      输出到哪里,stdout表示输出到控制台。

    • log4j.logger.org.mybatis.example.BlogMapper=TRACE

      TRACE表示日志级别,后面会讲。

    • log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

      这两行不用管。

    • log4j.appender.stdout.layout.ConversionPattern=[%t] %5p - %n%m

      定义日志的打印格式:%t 表示线程名称;%5p表示日志级别。其他的就不说了。

  • 使用效果

    在你运行你的方法时(比如刚才的模糊查询),它不再是仅仅输出一个结果:
    学新通

    • 把刚才的log4j配置文件中的最后一行,也就是定义日志打印格式修改一下,再运行(加了个%msg)
    log4j.appender.stdout.layout.ConversionPattern=[%t] %5p - %msg %m%n
    

学新通

会发现比刚才输出了更多的信息。%msg表示日志信息。

[main]代表线程的名字,主线程。

日志的级别——DEBUG级别。

具体解释:

第一行:

logging … 代表初始化。

第二行:

PooledDataSource,我们是不是建立了数据库的连接。连接是不是叫“POOLED”。这就表示初始化了我们的数据源。

第六行:

有一个Opening JDBC Connection。打开了一个JDBC连接。(也说明MyBatis的底层就是JDBC)。

第七行:

Created Connection,说明创建了这个连接。

第八行:

==> Preparing: select … 准备阶段。表示准备什么语句,读取了什么值。(这个时候还没编译,注意看我们的%花%里面的“花”已经显示进来了,这是由于我们采用的是${}拼接)。再到下一个[main],Parameters: … 是继续做准备工作,不过这个准备工作好像并没有做什么日志输出。

接着,执行(最下面那3行)。Total:2,输出两个结果。

最后两行才是打印结果。上面的都是日志输出。

  • 再换一个方法执行一下看看:

学新通

会发现读取select语句的时候那里放了两个占位符“?”(因为那里是用的#{}),这样就一目了然。

日志记录就是监控他每个环节,没有什么特殊含义。报错的时候也可以更清楚的看到是哪个环节出了错误,而且它报的异常会更详细。

14.3 日志信息的级别

在使用日志框架输出日志信息的时候,会根据输出的日志信息的重要程度分为5个级别

级别 说明
DEBUG 输出调试信息
INFO 输出提示信息
WARN 输出警告信息
ERROR 一般性错误信息
FATAL 致命性错误信息

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcakki
系列文章
更多 icon
同类精品
更多 icon
继续加载