MyBatis 详解(七)

发布于 2021-07-27  70 次阅读


日志

一般在程序上线之后,一旦发生异常,第一件事就是要弄清楚当时发生了什么。用户当时做了什么操作,环境有无影响,数据有什么变化,是不是反复发生等,然后再进一步的确定大致是哪个方面的问题。确定是程序的问题之后再交由开发人员去重现、研究、提出解决方案。这时,日志就给我们提供了第一手的资料。

logImpl 属性(默认为未设置)

指定 MyBatis 所用日志的具体实现,未指定时将自动查找。需要掌握的是 STDOUT_LOGGING 和 LOG4J。

STDOUT_LOGGING

<!--mybatis-config.xml-->
<settings>
    <!--标准的日志工厂实现-->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

MyBatis 详解(七)插图

LOG4J

<!--log4j 日志依赖-->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.12</version>
</dependency>
#log4j.properties
#将等级为 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=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/log4j.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
<!--mybatis-config.xml-->
<settings>
    <setting name="logImpl" value="LOG4J"/>
</settings>
static Logger logger = Logger.getLogger(UserMapperTest.class);
@Test
public void log4jTest() {
    logger.info("info:进入了 log4jTest");
    logger.debug("debug:进入了 log4jTest");
    logger.error("error:进入了 log4jTest");
}
/*结果为
[ml.guest997.mapper.UserMapperTest]-info:进入了 log4jTest
[ml.guest997.mapper.UserMapperTest]-debug:进入了 log4jTest
[ml.guest997.mapper.UserMapperTest]-error:进入了 log4jTest
*/
[INFO][21-06-09][ml.guest997.mapper.UserMapperTest]info:进入了 log4jTest
[DEBUG][21-06-09][ml.guest997.mapper.UserMapperTest]debug:进入了 log4jTest
[ERROR][21-06-09][ml.guest997.mapper.UserMapperTest]error:进入了 log4jTest