MyBatis06:日志

本文详细介绍了在 MyBatis 中如何配置和使用 Log4j 日志,包括日志级别的设置、添加 Log4J 依赖、配置文件编写以及在程序中使用 log4j 输出日志。同时,强调了日志在项目开发中的重要性和实用性。
摘要由CSDN通过智能技术生成

本文为 SSM 框架系列之 MyBatis 第六部分:日志
其它内容的链接如下:
【1】MyBatis01:初识 MyBatis 与 第一个 MyBaits 程序
【2】MyBatis02:CRUD 操作
【3】MyBatis03:配置解析
【4】MyBatis04:作用域和生命周期
【5】MyBatis05:分页
【6】MyBatis06:日志
【7】MyBatis07:使用注解开发
【8】MyBatis08:ResultMap 的结果集映射
【9】MyBatis09:动态 SQL 与缓存

1 日志

1.1 日志工厂

参考官方文档【传送门】。

Mybatis 通过使用内置的日志工厂提供日志功能,内置日志工厂将会把日志工作委托给下面的实现之一:

  • SLF4J
  • Apache Commons Logging
  • Log4j
  • Log4j 2
  • JDK logging

Mybatis 会按上面罗列的顺序使用第一个查找到的实现,当没有找到这些实现时,将会禁用日志功能。

因为不少应用服务器(如 Tomcat 和 WebShpere)的类路径中已经包含 Commons Logging,所以此时 MyBatis 会把 Commons Logging 作为日志工具。这个时候如果想使用其它日志实现,可以通过在 MyBatis 配置文件 mybatis-config.xml 里面添加一项 setting 来选择其它日志实现。

1.2 Log4j

1.2.1 Log4j 的日志级别

级别含义
DEBUG输出调试信息;指出细粒度信息事件对调试应用程序是非常有帮助的
INFO输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程
WARN输出警告信息;表明会出现潜在错误的情形
ERROR输出错误信息;指出虽然发生错误事件,但仍然不影响系统的继续运行
FATAL输出致命错误;指出每个严重的错误事件将会导致应用程序的退出
ALL level打开所有日志记录开关;是最低等级的,用于打开所有日志记录
OFF level关闭所有日志记录开关;是最高等级的,用于关闭所有日志记录

按照范围从小到大排序:OFF level > FATAL > ERROR > WARN > INFO > DEBUG > ALL level;范围大的会包含范围小的,例如若日志设置为 INFO 级别的话则 FATAL、ERROR、WARN、INFO 的日志开关都是打开的,而 DEBUG 的日志开关将是关闭的。

Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。

1.2.2 日志配置步骤 1:添加 Log4J 的 jar 包

在 Maven 的 .pom 文件中添加依赖

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
</dependency>

1.2.3 日志配置步骤 2:日志配置文件编写

在 resources 中添加配置文件 log4j.properties,加入以下配置内容:

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n

#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/sharm.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

1.2.4 日志配置步骤 3:setting 设置日志实现

<settings>
   <setting name="logImpl" value="LOG4J"/>
</settings>

1.2.5 日志配置步骤 4:在程序中使用 log4j 进行输出

// 注意导包:org.apache.log4j.Logger
// 固定写法
static Logger logger = Logger.getLogger(UserTest.class);

@Test
public void testSelectUser(){
    logger.info("info:进入selectUser方法");
    logger.debug("debug:进入selectUser方法");
    logger.error("error: 进入selectUser方法");


    SqlSession session = MyBatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    List<User> users = mapper.selectUser();

    for (User user: users){
        System.out.println(user);
    }
    session.close();
}

部分输出日志为

在这里插入图片描述在这里插入图片描述

1.3 自我总结

  1. 如果一个项目不更新了,那么有两种可能性,要么已经很完善了,要不已经跟不上时代了;
  2. 程序员要面向搜索编程;
  3. 要学会分析一个陌生的配置文件。

1.4 日常使用

在日常使用中,我常常在 MyBatis 的配置文件中加入如下代码,以达到查看 SQL 日志的功能,简单又方便。

    <!-- 增加 MyBatis 日志 -->
    <settings>
        <!-- 没想到 name 属性的值必须是 logImpl,否则就找不到  -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值