博客
关于我
MyBatis 日志
阅读量:703 次
发布时间:2019-03-21

本文共 2308 字,大约阅读时间需要 7 分钟。

MyBatis 日志工厂

日志的重要性

在编程过程中,数据库操作如果出现异常,我们需要及时排查问题。日志是排查问题的利器,但不再直接使用System.out.printlndebug工具,而是可以通过日志实现降级处理。

MyBatis 提供了 setting 标签下的 logImpl 属性,用于指定日志工厂。不同的日志工厂实现可以满足不同的日志需求。以下是常用的日志工厂实现及其特点:

常用日志工厂实现

1. SLF4J

SLF4J(Simple Logging Facade for Java)是一种面向现代表象层的日志框架,适合灵活的日志配置需求。这种日志工厂在 MyBatis 3 中依然有广泛的应用。

2. LOG4J

Log4j 是 Apache 开源项目,由Fearless Computing有限公司维护。Log4j 提供了高度可定制化的日志配置能力,支持多种日志目标(如控制台、文件、GUI等),并且可以根据需求设置日志级别。

3. LOG4J2

LOG4J2 是 Log4j 2.x 的全称,是对原有的 Log4j 进行了全面的改造,支持更复杂的日志配置需求,性能和稳定性也有显著提升。

4. JDK_LOGGING

JDK_LOGGING 是 MyBatis 默认的日志实现,基于 JDK 的 java.util.logging 包。

5. COMMONS_LOGGING

Commons Logging 是 Apache Commons 项目下的日志框架,适合需要通用日志处理的场景。

6. STDOUT_LOGGING

STDOUT_LOGGING 是一个简单的日志工厂实现,日志信息会被直接输出到标准输出中,不需要额外的依赖包。

7. NO_LOGGING

NO_LOGGING 表示完全不启用任何日志输出,这在某些性能敏感场景下可能有用处,但通常不推荐于开发和调试阶段。

如何配置日志工厂

在 MyBatis 的核心配置文件中添加 settings 标签,具体配置如下:

待完成项

1. 使用 LOG4J 导入依赖

在项目的 pom.xml 文件中添加 LOG4J 的依赖项:

log4j
log4j
1.2.17

2. 配置 Log4j 方面

在项目根目录下创建 log4j.properties 文件,设置日志文件路径、输出格式等:

#rootLogger 输出到控制台和文件log4j.rootLogger=DEBUG, console, file#控制台设置log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target:System.outlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%c-%m%n#文件设置log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=./log/hj.loglog4j.appender.file.MaxFileSize=10mblog4j.appender.file.Threshold=DEBUGlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%p[%d{yy-MM-dd}][%c]%m%n#设置日志级别log4j.logger.org.mybatis=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

3. 在代码中使用日志

在需要使用日志的类中导入 LOG4J 的包,并初始化日志对象:

import org.apache.log4j.Logger;// 初始化日志对象public class UserMapperTest {    private static final Logger logger = Logger.getLogger(UserMapperTest.class);        // 测试 LOG4J 日志功能   @Test    public void testLog4j() {        logger.info("信息级别:进入了 testLog4j");        logger.debug("调试级别:进入了 testLog4j调试");        logger.error("错误级别:进入了 testLog4j");    }}

项目代码

点击查看完整代码

总结

通过以上方法,我们可以在 MyBatis 中灵活配置不同的日志工厂,根据具体需求选择合适的日志实现工具。

转载地址:http://ycxez.baihongyu.com/

你可能感兴趣的文章
Pandas 中的日期范围
查看>>
pandas 中的时间序列箱线图
查看>>
Pandas 使用指南
查看>>
pandas 分组并使用最小值更新
查看>>
Pandas 对数据框的布尔比较
查看>>
pandas 将通话数据分割为15分钟的间隔
查看>>
pandas 找到局部最大值和最小值
查看>>
pandas 时间序列重新采样结束给定的一天
查看>>
pandas 根据不是常量的第三列的值将值从一列复制到另一列
查看>>
pandas 根据值从多列中的一列查找
查看>>
Pandas 根据布尔条件选择行和列
查看>>
pandas 滚动窗口 - datetime64[ns] 未实现
查看>>
pandas 版本兼容特定的蟒蛇和NumPy配置吗?
查看>>
pandas 生成excel多级表头
查看>>
pandas 读取excel数据,以字典形式输出
查看>>
Pandas 读取具有浮点值的 csv 文件会导致奇怪的舍入和小数位数
查看>>
pandas 适用,但仅适用于满足条件的行
查看>>
pandas 重新采样到每月的特定工作日
查看>>
pandas :按移位分组和累加和(GroupBy Shift And Cumulative Sum)
查看>>
pandas :检测一个DF和另一个DF之间缺失的列
查看>>