7、日志
在以往的开发中,我们通常使用Debug模式和控制台输出(sout)来调试程序。
现在我们通过日志,来对数据库操作进行调试。
要使用日志功能,需要在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、日志打印
准备工作
数据库操作
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
注:
-
Log4j根配置
- 语法:log4j.rootLogger = [ level ] , appenderName, …
- 将指定级别以上的日志信息,输出到指定位置,低于指定级别的日志信息不会被输出。
-
官方建议实用的4个级别,优先级从高到低为
- ERROR
- WARN
- INFO
- DEBUG
-
如果没有LOG4J配置文件,报错。
3、设置
在MyBatis配置文件
中设置
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
4、日志打印
相比标准日志工厂
,可以自定义日志等级、生成时间、类名等信息。
控制台打印
日志文件
5、简单使用
- 在需要使用Log4j的类中导包:
import org.apache.log4j.Logger
; - 获取日志对象,参数为当前类的class;
- 注意Log4j中的根配置,只输出指定级别以上的日志信息,低于指定级别的日志信息不会被输出;
- 官方建议实用的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等级");
}
控制台打印
日志文件
Ideolog插件
使用IntelliJ IDEA进行开发,可以在插件中心下载该插件,可以设置不同日志等级的高亮。