【MyBatis】四、日志

7、日志

在以往的开发中,我们通常使用Debug模式和控制台输出(sout)来调试程序。

现在我们通过日志,来对数据库操作进行调试。

【MyBatis】四、日志

要使用日志功能,需要在MyBatis配置文件的settings中,设置日志工厂的实现类。

  • STDOUT_LOGGING:标准日志,无需配置。
  • NO_LOGGING:最小化日志产生的数量(并非不记录日志),无需配置。
  • 其他实现类:需要写配置文件。
<!-- 
	name:logImpl严格区分大小写;
	value:不区分大小写,注意不要有空格
-->
<settings>
    <setting name="logImpl" value="具体实现类"/>
</settings>

STDOUT_LOGGING

1、设置

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

2、日志打印

准备工作

【MyBatis】四、日志

数据库操作

【MyBatis】四、日志

LOG4J

1、简介

Log4j是Apache的一个开源项目。通过一个配置文件来灵活地进行配置,不需要修改应用的代码。

  • 可以控制日志信息输送的位置:控制台、文件、GUI组件等;

  • 可以控制每一条日志的输出格式

  • 通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。

2、导包及配置

Maven依赖【Apache Log4j

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

配置文件【log4j.properties】

#级别为DEBUG以上的的日志信息,输出到console和file这两个位置
#官方建议实用的4个级别:ERROR、WARN、INFO、DEBUG
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=[%p][%c]-%m%n

#文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/userLog.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. Log4j根配置

    • 语法:log4j.rootLogger = [ level ] , appenderName, …
    • 将指定级别以上的日志信息,输出到指定位置,低于指定级别的日志信息不会被输出。
  2. 官方建议实用的4个级别,优先级从高到低为

    • ERROR
    • WARN
    • INFO
    • DEBUG
  3. 如果没有LOG4J配置文件,报错。

【MyBatis】四、日志

3、设置

MyBatis配置文件中设置

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

4、日志打印

相比标准日志工厂,可以自定义日志等级、生成时间、类名等信息。

控制台打印

【MyBatis】四、日志

日志文件

【MyBatis】四、日志

5、简单使用

  1. 在需要使用Log4j的类中导包:import org.apache.log4j.Logger
  2. 获取日志对象,参数为当前类的class;
  3. 注意Log4j中的根配置,只输出指定级别以上的日志信息,低于指定级别的日志信息不会被输出;
  4. 官方建议实用的4个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。
@Test
public void testLog4j(){
    // 获取日志对象
    Logger logger = Logger.getLogger(UserMapperTest.class);

    logger.debug("日志:DEBUG等级");
    logger.info("日志:INFO等级");
    logger.warn("日志:WARN等级");
    logger.error("日志:ERROR等级");
}

控制台打印

【MyBatis】四、日志

日志文件

【MyBatis】四、日志

Ideolog插件

使用IntelliJ IDEA进行开发,可以在插件中心下载该插件,可以设置不同日志等级的高亮。

【MyBatis】四、日志

【MyBatis】四、日志

上一篇:Bash漏洞分析


下一篇:循环结构程序设计